gpt4 book ai didi

python - PyQt QPushButton 信号处理

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:16 32 4
gpt4 key购买 nike

我有一个 repeat python 函数和一个只有一个按钮的 test.ui。我的疑问是每次单击按钮时如何准确地循环一次相同的功能。因为对我来说,每当我表演时:

self.pushButton.clicked.connect(self.repeat)

它在函数中循环多次而不是一次。我通过每次到达函数时增加一个值来发现这一点。如何实现每次点击按钮时 repeat 恰好一次的功能?

import sys
from PyQt4 import QtCore, QtGui, uic

qtCreatorFile = "test.ui"

Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)


class Login(QtGui.QMainWindow, Ui_MainWindow):
i=1
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)

self.setupUi(self)
self.pushButton.setText("iam in init")
self.pushButton.clicked.connect(self.repeat)
def repeat(self):

self.pushButton.setText("iam in repeat"+str(self.i))

self.i=self.i+1

self.pushButton.clicked.connect(self.repeat)




if __name__ == "__main__":
app=QtGui.QApplication(sys.argv)
main = Login()
main.show()
sys.exit(app.exec_())

最佳答案

查看您的代码,您已多次建立连接。您应该仅在 __init__ 中使用 self.pushButton.clicked.connect(self.repeat) 来建立它,而不是在 repeat() 函数中。换句话说,删除第二次出现(即在 repeat() 中)你应该没问题。连接应该只建立一次,因为一旦建立,它将持续到 disconnect() 被调用或者直到 slotsignal 被破坏.

关于python - PyQt QPushButton 信号处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39690243/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com