Qt中解除按键在聚焦时键盘空格键可以控制

博客主要围绕Qt展开,指出QPushButton默认按空格键会触发clicked()信号,是因与键盘空格键事件绑定且默认属性为强聚焦。当焦点聚集到按钮,按下空格相当于点击按钮。解决办法是将按钮的focusPolicy属性设为NoFocus,使其无法接收键盘事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt中解除按键在聚焦时键盘空格键可以控制,只允许鼠标左键可以点击按键
首先需要知道原因,为什么键盘上的空格键也可以点击按键?
根据Qt官网说明:A push button emits the signal clicked() when it is activated by the mouse, the Spacebar or by a keyboard shortcut.
QPushButton默认按空格键也会触发clicked()信号。实际就是QPushButton与键盘空格键事件绑定了,QPushButton接受了键盘事件,导致按下空格键相当于点击了QPushButton
这一点在ui文件中的QPushButton的默认属性是强聚焦可以看出来
在这里插入图片描述
用户使用键盘上的Tab键或者鼠标左键点击QPushButton按键,把焦点聚集到按钮时,再按下空格就相当于点击了按钮。

解决办法

把按钮的focusPolicy属性,设置为NoFocus,即调用QPushButton的setFocusPolicy()函数:

setFocusPolicy(Qt::NoFocus);

这样该按钮就无法接收键盘事件了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值