我怎样才能制作一个仅在按住按钮(比如说一秒钟)时才执行其下的代码,并在释放按钮时停止执行的按钮?
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_()) ```
答案 0 :(得分:1)
您没有提到要在按下按钮时执行哪种功能,而是假设您想在按下按钮时每秒钟左右执行一次功能。
在这种情况下,您可以使用NavigationLink (destination: EditView(usersViewModel: usersViewModel))
并将要执行的功能连接到QTimer
信号。
然后您可以使用QTimer.timeout
和button.pressed
信号来启动和停止计时器。
例如:
button.released