0

我一直在 Linux (Kubuntu) 下使用 Qt Creator 开发桌面应用程序。在linux下,一切都很好,但是在Windows下,在一个对话框中,出现窗口时默认选择了错误的按钮。

共有三个按钮:编辑、继续和停止。

继续标记为“自动默认”和“默认”。

停止标记为“自动默认”,而不是“默认”。

编辑既没有标记为“自动默认”也没有标记为“默认”,但是当对话框打开时,它被选中,按下回车键按下编辑按钮。

任何想自己尝试的人都可以在https://github.com/megamasha/FlashKard找到该程序的源代码。有问题的窗口是从“resultswindow.ui”文件生成的。

这只是我吗?这是一个错误吗?只是想知道是否有人可以看到为什么这不起作用的任何明显原因(或者它可能只是在我的 Windows Vista 系统上不起作用)

4

1 回答 1

0

关于QPushButton::default

此属性设置为 true 的按钮(即对话框的默认按钮)将在用户按下 Enter 时自动按下,但有一个例外:如果 autoDefault 按钮当前具有焦点,则按下 autoDefault 按钮。

更重要的是:

默认情况下,对话框中的命令按钮是自动默认按钮,即当它们接收到键盘输入焦点时,它们会自动成为默认按钮。

除非您将editButton's autoDefault显式设置为 false,否则它是 true。可能涉及到一些 Windows 细节(没有进一步的提示,Windows 关注具有最低 ID 的控件,这可能是 的情况editButton,因为它是首先创建的)。尝试将autoDefault设置为 false,或显式调用continueButton.setFocus()

于 2012-02-25T14:20:38.750 回答