PyQt5 pushbutton 学习

''' pushbutton继承自QAbstractButton,但启动AutoRepeat之后,会按照一定周期自动发出pressed、released、
clicked这3个信号,很多时候需要按住按钮来重复执行一个功能,松开按钮就停止执行,就可以通过如下代码实现 '''
# 设置自动重复执行功能和间隔时间
self.btn_turnright.setAutoRepeat(True)	
self.btn_turnright.setAutoRepeatDelay(300)	
self.btn_turnright.setAutoRepeatInterval(100)
# 连接槽函数
self.btn_turnright.pressed.connect(self.send_turn_right)
self.btn_turnright.released.connect(self.send_turn_stop)
# 定义按下时的槽函数,实现具体功能
def send_turn_right(self):
	tx_data_right = bytearray([0xff, 0x01, 0x00, 0x02, 0x3f, 0x00, 0x42])
	self.com.write(tx_data_right)
''' 定义松开时的槽函数,因为我只需要在按下时向mcu不停的发向右指令,在松开时只发一次停止指令,这里一定要判断
一下isDown,不然下面的2条语句在鼠标保持按下时也会被不断执行,加了之后只有在鼠标松开时才会执行一次 '''
def send_turn_stop(self):
	if not self.btn_turnleft.isDown():
		tx_data_stop = bytearray([0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01])
		self.com.write(tx_data_stop)

猜你喜欢

转载自blog.csdn.net/cp_srd/article/details/105208478