覆盖丢失的焦点事件以保存并显示模型的lastError

时间:2018-01-12 08:47:47

标签: python pyqt

在失去焦点后,如何覆盖QWidget的focusOutEvent来保存/提交并显示QSqlTablemodel的lastError?我想通知用户保存模型是否有任何问题并让他更正或放弃更改。

我尝试在QWidget上实现下面的代码,这是tabControl中的一个选项卡但是当我关闭选项卡或导航到子/子选项卡时它没有执行

def focusOutEvent(self,event):
    print("Losing focus now")
    self.model.submitAll()
    print(self.model.lastError().text())

1 个答案:

答案 0 :(得分:1)

focusOutEvent通常要求focusPolicy设置为默认值Qt::NoFocus以外的其他内容才能接收焦点事件。

  

如果小部件接受键盘焦点,则策略为Qt::TabFocus   Tab键,Qt::ClickFocus如果小部件通过单击接受焦点,   Qt::StrongFocus如果它同时接受,Qt::NoFocus(默认值)if   它根本不接受焦点。

请参阅http://doc.qt.io/archives/qt-4.8/qwidget.html#focusOutEvent& http://doc.qt.io/archives/qt-4.8/qwidget.html#focusPolicy-prop了解有关此内容的更多信息。