失去焦点后,如何覆盖QWidget的focusOutEvent以保存/提交并显示QSqlTablemodel的lastError?我想通知用户保存模型时是否有任何问题,并让他更正或放弃更改。
我尝试在 QWidget 上实现以下代码,它是 tabControl 中的一个选项卡,但当我关闭选项卡或导航到子/子选项卡时它没有执行
def focusOutEvent(self,event):
print("Losing focus now")
self.model.submitAll()
print(self.model.lastError().text())
focusOutEvent
通常要求将focusPolicy
设置为默认值 Qt::NoFocus
以外的其他值,以便接收焦点事件。
如果小组件通过以下方式接受键盘焦点,则
Qt::TabFocus
策略 Tab 键,Qt::ClickFocus
小部件是否通过单击接受焦点, 如果同时接受两者,则Qt::StrongFocus
,如果接受,则Qt::NoFocus
(默认值( 它根本不接受焦点。
有关此内容的更多信息,请参阅 http://doc.qt.io/archives/qt-4.8/qwidget.html#focusOutEvent & http://doc.qt.io/archives/qt-4.8/qwidget.html#focusPolicy-prop。