在失去焦点后,如何覆盖QWidget的focusOutEvent来保存/提交并显示QSqlTablemodel的lastError?我想通知用户保存模型是否有任何问题并让他更正或放弃更改。
我尝试在QWidget上实现下面的代码,这是tabControl中的一个选项卡但是当我关闭选项卡或导航到子/子选项卡时它没有执行
def focusOutEvent(self,event):
print("Losing focus now")
self.model.submitAll()
print(self.model.lastError().text())
答案 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了解有关此内容的更多信息。