Python GUI编程网 > PyQt5控件_PyQt5控件方法大全 > PyQt5按钮控件QPushButton自动重复和重复间隔时间设置
python教程

PyQt5按钮控件QPushButton自动重复和重复间隔时间设置

发布博客:2022年11月10日 17:54
阅读:28
作者:Python GUI编程网

在QAbstractButton子类的按钮控件动作主要是点击,一次点击又分为2个动作即:按下和松开。以按钮控件QPushButton来演示一下按钮自动重复功能,指的是当按下按钮的时候不松手,按钮会一直执行某个动作。

在QAbstractButton子类的按钮控件动作主要是点击,一次点击又分为2个动作即:按下和松开。以按钮控件QPushButton来演示一下按钮自动重复功能,指的是当按下按钮的时候不松手,按钮会一直执行某个动作。

按钮自动重复中我们学习几个方法:

btn.setAutoRepeat()  # 设置自动重复
 btn.setAutoRepeatInterval()  # 设置自动重复检查间隔
 btn.setAutoRepeatDelay()  # 设置除此检测延时
 btn.autoRepeat()  # 获取是否自动重复
 btn.autoRepeatInterval()  # 获取自动重复间隔
 btn.autoRepeatDelay()  # 获取自动重复除此检测时长

下面我们来测试一下这几个方法,因为截图和代码不能形象的展示,大家可以复制代码自己测试一下。先看看自动重复setAutoRepeat(),这里传入bool值作为参数。

btn.setText('自动重复按钮')
 btn.setAutoRepeat(True)  # 设置自动重复
 btn.pressed.connect(lambda: print('自动重复'))

QPushButton

结果虽然现实出来了,但是这样的自动重复速度太快,所以我们可以使用setAutoRepeatInterval()来设置一下重复间隔时间,内部参数为Int值,单位是毫秒。

btn.setText('自动重复按钮')
 btn.setAutoRepeat(True)  # 设置自动重复
 btn.setAutoRepeatInterval(1000)  # 设置自动重复检查间隔
 btn.pressed.connect(lambda: print('自动重复'))

其中setAutoRepeatDelay()的效果是鉴于以上2个方法之间,只有首次延时。

btn.setText('自动重复按钮')
 btn.setAutoRepeat(True)  # 设置自动重复
 # btn.setAutoRepeatInterval(1000)  # 设置自动重复检查间隔
 btn.setAutoRepeatDelay(2000)  # 设置除此检测延时
 btn.pressed.connect(lambda: print('自动重复'))

以上三种方法就是设置按钮控件自动重复的主要方法,相对于的就是获取,这里就不一一演示了,大家自己操作一下即可,完整代码放在下面。

from PyQt5.Qt import *
 import sys
 
 app = QApplication(sys.argv)
 window = QWidget()
 window.setWindowTitle('按钮自动重复功能 - PyQt5中文网')
 window.resize(600, 450)
 btn = QPushButton(window)
 
 btn.move(60, 60)
 btn.resize(80, 40)
 btn.setText('自动重复按钮')
 btn.setAutoRepeat(True)  # 设置自动重复
 btn.setAutoRepeatInterval(1000)  # 设置自动重复检查间隔
 # btn.setAutoRepeatDelay(2000)  # 设置除此检测延时
 btn.pressed.connect(lambda: print('自动重复'))
 print(btn.autoRepeat())
 print(btn.autoRepeatInterval())
 # btn.autoRepeatDelay()  # 获取自动重复除此检测时长
 
 window.show()
 sys.exit(app.exec_())