我正在Red Hat Linux上开发一个Qt应用程序。我想在QComboBox
。
我已将一个插槽连接到信号editTextChanged()
,该信号会在每次按键时发出,但不会为输入键发出。
为什么这样?有没有其他方法可以检测回车?
答案 0 :(得分:4)
我假设你写了一个插槽并将其连接到QComboBox::editTextChanged()
信号
当文本更改并且 Enter 不更改文本时会触发此信号,它接受它。如果您想捕获回车,您可以通过多种方式进行操作。
子类QComboBox
。
覆盖keyPressEvent()
:首先调用QComboBox::keyPressEvent()
,然后检查按下的键是否为 Enter 。如果是,则发出信号
您可以随时使用此子类。如果您不知道如何在QDesigner中搜索有关推广小部件的内容。
实现一个继承QObject
的新类。在此课程中,覆盖eventFilter()
:检查事件是否为按键。如果是,请检查它是否是 Enter 键。如果是,则发出信号
然后,创建此类的实例并将其设置为QComboBox
的事件过滤器。将插槽连接到您实施的此实例的信号。
如果不清楚,我建议您阅读以下页面:
答案 1 :(得分:3)
您还可以查看activated( const QString& )
信号。当用户点击进入时可能会发出它。