PyQt5 如何判断按钮是否被连续按下?

How to figure out whether button is continuosly pressed or not in PyQt5?

对于我的应用程序,我需要我的电梯系统在按下按钮时上升,而在我不按下按钮时它应该停止。

clicked() 函数不适用于此目的。但是 pressed() 和 released() 函数也不起作用。

我在下面截取了代码的相关部分。我的目标是只要按下按钮就打印“按下”文本

def __init__(self):
    manual_button = QPushButton('Lift Button')
    manual_button.pressed.connect(press_function)
    self.manual_grid.addWidget(manual_button, 0, 1)

def press_function(self):
    print('pressed')

谢谢

只需使用 pressedreleased 信号到 start/stop 和 QTimer。像...

#!/usr/local/bin/python3
import os
import sys
from PyQt5.QtCore import(QTimer)
from PyQt5.QtWidgets import(QApplication, QPushButton)

def button_pressed(timer):
    timer.start(100)

def button_released(timer):
    timer.stop()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    pb = QPushButton("Press")
    timer = QTimer()
    pb.pressed.connect(lambda checked = False: button_pressed(timer))
    pb.released.connect(lambda checked = False: button_released(timer))
    timer.timeout.connect(lambda: print('Button Pressed'))
    pb.show()
    app.exec_()