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