当前位置:   article > 正文

PyQt5 用按键同步按钮按下释放动画,解决长按时按钮自动重复动作_pyqt5 设置按钮处于释放

pyqt5 设置按钮处于释放

功能需求:

准备通过写一个上位机遥控器界面控制电机转动,具体功能与赛车游戏类似,当按下键盘一个键位时(以数字4键为例),界面上的“上”按钮变暗,只触发按钮事件一次,直到松开键盘键位,按钮复原,电机停转。

ps:起初想以按钮的setAutoRepeat()函数实现,发现没有效果,qt小白,有知道的大佬可以指教一下。

代码只给出类里面具体的两个重载函数,其余部分不懂的可以评论区:

  1. def keyPressEvent(self,event): #重载
  2. if event.key() == Qt.Key_4:
  3. print("按键被按下")
  4. self.pushButton.click() #点击创建的按钮实例,前提:按钮已绑定自定义事件
  5. self.pushButton.setEnabled(False) #阻止按钮事件发生,防止重复触发按钮事件
  6. def keyReleaseEvent(self, event): #重载
  7. if event.key() == Qt.Key_4:
  8. if event.isAutoRepeat(): #按钮按下状态,为True
  9. pass
  10. else: #按钮释放状态,为False
  11. print("键盘被松开")
  12. self.pushButton.setEnabled(True) #按钮释放,恢复点击按钮触发事件功能
  13. self.pushButton.toggle() #按钮释放,恢复按钮状态(按钮由暗变亮)

具体实现效果简单描述就是,长按按键4时,只会传输一次控制指令给电机,界面的对应按钮会从亮变暗(自己设置的效果,亮代表没按,暗代表按钮按下),只有释放按钮时会传输一次停止控制指令给电机,界面的对应按钮会从暗变亮。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/897382
推荐阅读
相关标签
  

闽ICP备14008679号