首页 > 解决方案 > 如何阻止空格键触发聚焦的 QPushButton?

问题描述

假设我有一个重点QPushButton

my_button = new QPushButton("Press me!", this);
my_button->setFocus();

当显示此按钮时,按下Space将触发(即单击)该按钮。我不想要这种行为。相反,我想Ctrl+Enter触发按钮。

我怎样才能在 Qt 中实现这一点?

(工作示例真的很有帮助,因为这是我的第一个 Qt 应用程序的一部分)

标签: c++qtqt4

解决方案


您可以将单击的按钮的插槽连接到快捷方式

connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Enter), this), &QShortcut::activated, [this]() {on_pushButton_clicked();});

另一方面,您可以设置焦点策略以避免空格键事件触发:

my_button->setFocusPolicy(Qt::NoFocus)

推荐阅读