【发布时间】:2013-03-28 13:13:12
【问题描述】:
我有一个QDialog 和一个QDialogButtonBox。 OK 和 Cancel 按钮处于活动状态。有时我会根据对话框的状态禁用或隐藏“确定”按钮。看来,无论我做什么,Enter 键总是会激活 OK 按钮。我真的不希望这种情况发生。我试过了:
- 每次显示/隐藏/启用/禁用/无论按钮如何,都将默认和 autoDefault 属性设置为 false
- 在 OK 按钮上安装一个事件过滤器来拦截按键事件(按下和释放)以进行返回、输入和空格
- 将按钮的焦点策略设置为 NoFocus
在上述所有内容的组合中,Enter 键仍然接受对话框。有谁知道如何阻止这个?看起来我应该能够阻止这么简单的事情?
【问题讨论】:
-
你能发布post事件过滤器代码吗?
-
是您自己的对话框还是您谈论 Qt 提供的标准对话框?
-
不要使用确定和取消按钮,将您自己的按钮添加到 QDialogButtonBox。
-
@MuhammadMinhazulHaque 但是我没有得到按钮在不同操作系统上正确定位的优势
标签: c++ qt qdialog qpushbutton