PyQt5 实现pushButton按钮和键盘的enter键绑定

我的需求:

首先,我做了一个登陆界面,输入密码后点击屏幕上"登录"按钮就可以实现界面跳转,但是一开始触发事件只能使用鼠标点击屏幕上的按钮才能触发这个按钮,我想到习惯性的登录动作是先用键盘输入密码,然后直接潇洒的重击一下回车键,又解压又有效!!!

我的解决思路:

要给这个"登录"的pushButton绑定键盘事件,首先想到的是利用setShortcut属性给pushButton设置一个快捷键,但是几经尝试发现setShortcut设置的快捷键好像都是Alt+某个字母这种,我总不能设置成Alt+enter,而且好像也不存在这种快捷键,所以这条路走不通.

结合我的一点前端知识,enter键应该是属于特殊键,肯定是有特殊的绑定方式,我就在CSDN搜一些方法,第一个看到的是这一篇方法不太行的文章,我把代码稍作修改加到我的代码中,但无法实现理想的功能,我以为方法没问题,就在这个监听函数里加了一个print,但是也无法输出,说明监听本身就有问题了!!!然后我接着找,又找到了一篇方法非常符合我需求的文章,监听函数的结构和前面那个类似,只是部分属性稍有不同,一试,达到了理想的功能.

总结:

先摆一下两份代码:

def keyPressEvent(self, event):
    if event.key() == QtCore.Qt.Key_Enter:
        self.slotLogin()
def keyPressEvent(self, QKeyEvent):
    if QKeyEvent.key() == Qt.Key_Return:
         print('Space')

在第二篇文章中作者说:大键盘上的键是Qt.Key_Return,小键盘上的Enter才是Qt.Key_Enter.

然后我就尝试了,第一份代码可以用外设全键键盘最右边数字键盘的enter响应,但是笔记本的enter键和外设全键键盘中间的大enter键都不能响应.第二份代码可以用笔记本的enter键和外设全键键盘中间的大enter键都可以响应,这也就是作者说的大,小键盘的enter键不同之处了.

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

block by James

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值