覆盖失去焦点的事件以保存和显示模型的最后一个错误



失去焦点后,如何覆盖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。

最新更新