用键盘将数据输入Qt GUI:按下回车键时会产生意想不到的副作用



我编写了一个Qt GUI,其中包含一些QSpinBoxes和QDdoubleSpinBoxes等内容。一切都按预期进行,除了一件事:当我在QSpinBoxes中输入一个数字并按"enter"键完成输入时,这也会激活选项卡顺序中的第一个小部件:即,我不只是更改旋转框的值,而是按下对话框顶部的按钮——这是我不想要的。我该怎么解决这个问题?(注意,我需要按Enter键才能接受新值,因为旋转框的键盘跟踪已停用。)

编辑:如果有人遇到类似的问题:http://developer.qt.nokia.com/doc/qt-4.8/eventsandfilters.html

我认为可能发生的情况是,当您按Enter键时,QDialog默认按钮被按下。

如果您自己对QDialog进行子类化,那么其中一个QPushButton默认属性设置为true。如果将其恢复为false,则按钮将不会对Enter键做出反应,除非处于焦点。这里的缺点是,如果您想使用默认值,则无法通过按Enter键来取消对话框。

最新更新