如何仅在python中使用pyqt5按住按钮时才运行我的函数

时间:2020-09-18 07:48:02

标签: python pyqt5

我怎样才能制作一个仅在按住按钮(比如说一秒钟)时才执行其下的代码,并在释放按钮时停止执行的按钮?

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot


class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 button '
        self.left = 500
        self.top = 200
        self.width = 320
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        button = QPushButton('PyQt5 button', self)
        button.setToolTip('This is an example button')
        button.move(100, 70)
        button.clicked.connect(self.on_click)

        self.show()

    @pyqtSlot()
    def on_click(self):
        print('PyQt5 button click')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_()) ```

1 个答案:

答案 0 :(得分:1)

您没有提到要在按下按钮时执行哪种功能,而是假设您想在按下按钮时每秒钟左右执行一次功能。

在这种情况下,您可以使用NavigationLink (destination: EditView(usersViewModel: usersViewModel)) 并将要执行的功能连接到QTimer信号。

然后您可以使用QTimer.timeoutbutton.pressed信号来启动和停止计时器。

例如:

button.released