我有一个QToolBar,其上有一个QToolButton。当鼠标单击按下QToolButton时,它会执行一些操作。按下空格键时执行相同的操作。我不希望在空格键上按下该动作,但是我希望它在鼠标点击时。我怎么能这样做?
使用继承和覆盖QWidget::keyPressEvent()
的子类QToolButton。在那里,检查你得到的钥匙是Qt::Key_Space
,如果是,返回,什么都不做。如果没有将事件传递给QToolButton。
使用没有焦点的设置焦点策略,这可以防止键盘具有焦点但仍允许鼠标单击。
Button->setFocusPolicy(Qt::NoFocus)
确保您没有意外地将“Space”指定为与所讨论的QToolButton相关联的操作的快捷方式(请查看Qt Creater的动作编辑器)。