我的复杂 GUI 由许多本机和自定义小部件组成。它们中的大多数根本没有焦点(我不需要它:例如,一些不需要用户输入的仅显示小部件)。
QLineEdit
当 GUI 希望用户输入一些字符串时,有时会出现在屏幕上(想象一下按 F2 后窗口的资源管理器选择了一些文件(重命名)。
我希望用户能够以QLineEdit
尽可能多的方式关闭它:按 Enter、ESC、在 QLineEdit 外部单击。
QLineEdit
在某些情况下发送editingFinished()
信号(按 Enter,单击另一个小部件);- 我也可以制作派生自该类的新类,该类在发生时
QLineEdit
发送editingFinished()
信号focusOutEvent(QFocusEvent *)
。 - 在该课程中,我可以捕获 ESC 键并发送
editingFinished()
.
唯一的问题是QLineEdit
只有当另一个小部件获得焦点时才会失去焦点。因此,如果您单击不关心焦点的小部件,则QLineEdit
保持焦点并且不发送editingFinished()
信号。