我正在 Red Hat Linux 上开发 Qt 应用程序。我想捕获回车键按下事件 QComboBox.

我已将插槽连接到信号 editTextChanged() 每次按键都会发出该信号,但不会 回车键.
为什么这样?有没有其他方法可以检测 回车符?

有帮助吗?

解决方案

我假设你写了一个插槽并将其连接到 QComboBox::editTextChanged() 信号。
当文本更改时会触发此信号 进入 不改变文本,它接受它。如果你想捕捉 回车, ,您可以遵循多种方法。

  1. 子类 QComboBox.
    覆盖 keyPressEvent() :第一次通话 QComboBox::keyPressEvent() 然后检查按下的键是否为 进入. 。如果是,则发出信号。
    当你需要的时候就可以使用这个子类。如果您不知道如何,请搜索有关在 QDesigner 中推广小部件的信息。

  2. 实现一个继承的新类 QObject. 。在这个类中,覆盖 eventFilter() :检查事件是否为按键事件。如果是,检查是否是 进入 钥匙。如果是,则发出信号。
    然后,创建此类的实例并将其设置为您的事件过滤器 QComboBox. 。将插槽连接到您实现的该实例的信号。

如果这些不清楚,我建议阅读以下页面:

通过 Qt 设计器使用自定义小部件

Qt 事件和事件过滤器

其他提示

您还可以看看到activated( const QString& )信号。当用户点击进入它可能被发射。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top