捕获 QComboBox 中的文本更改事件
题
我正在 Red Hat Linux 上开发 Qt 应用程序。我想捕获回车键按下事件 QComboBox
.
我已将插槽连接到信号 editTextChanged()
每次按键都会发出该信号,但不会 回车键.
为什么这样?有没有其他方法可以检测 回车符?
解决方案
我假设你写了一个插槽并将其连接到 QComboBox::editTextChanged()
信号。
当文本更改时会触发此信号 进入 不改变文本,它接受它。如果你想捕捉 回车, ,您可以遵循多种方法。
子类
QComboBox
.
覆盖keyPressEvent()
:第一次通话QComboBox::keyPressEvent()
然后检查按下的键是否为 进入. 。如果是,则发出信号。
当你需要的时候就可以使用这个子类。如果您不知道如何,请搜索有关在 QDesigner 中推广小部件的信息。实现一个继承的新类
QObject
. 。在这个类中,覆盖eventFilter()
:检查事件是否为按键事件。如果是,检查是否是 进入 钥匙。如果是,则发出信号。
然后,创建此类的实例并将其设置为您的事件过滤器QComboBox
. 。将插槽连接到您实现的该实例的信号。
如果这些不清楚,我建议阅读以下页面:
其他提示
您还可以看看到activated( const QString& )
信号。当用户点击进入它可能被发射。
不隶属于 StackOverflow