Qt4点击菜单栏没有焦点损失

时间:2014-02-27 23:03:12

标签: qt qt4 focus pyqt

我有一个pyqt应用程序,我有两个QLineEdit字段从QDataWidgetMapper获取数据。我可以编辑字段中的文本,并且当我改变时,更改会提交焦点丢失。单击其他未选择的字段。

但是,如果我编辑文本然后点击菜单栏,那么例如保存,我不会有焦点丢失,因此我最后输入的数据永远不会到达模型。

如何在点击菜单栏时获得焦点损失?

1 个答案:

答案 0 :(得分:1)

对我来说,连接QLineEdit.editingFinished信号按预期工作。也就是说,每当按下return / enter时发送信号,或者行编辑失去焦点(包括打开菜单,最小化窗口,关闭程序等)。

然而,从长远来看,我认为单靠这种机制是一个坏主意。举一个例子说明为什么会这样:如果您在将来某个时候为菜单项添加了键盘快捷键,该怎么办?通过键盘快捷键激活保存操作不会触发焦点更改事件...

所以我会建立一个单独的机制,可以在调用save-action之前以编程方式提交所有挂起的更改。