gpt4 book ai didi

python - PyQT - 从其他函数修改主窗口小部件

转载 作者:行者123 更新时间:2023-11-28 23:05:29 25 4
gpt4 key购买 nike

一个 PyQT 初学者问题。我想知道如何执行以下操作 - 从主窗口类外部修改主窗口中的小部件。像这样:

class MainWindow(QtGui.QMainWindow):    

def __init__(self, parent=None):

super(MainWindow,self).__init__(parent)

self.ui = Ui_MainWindow()
self.ui.setupUi(self)

self.ui.progressBar.setMaximum(100)
self.ui.progressBar.setMinimum(0)
self.ui.progressBar.setValue(0)

self.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'), self.slotDoStuff)

def slotDoStuff(self):
AnotherFunction()


def AnotherFunction():
modify progress bar here...

有没有办法做这样的事情?我想为各种主窗口操作子类化事件处理程序,而不是将它们全部放在 MainWindow 类中。谢谢!

最佳答案

首先,有一种更好的方法可以将信号连接到 PyQt 上的槽:

self.button.clicked.connect(self.method)

您可以使用 lambda 函数将额外参数传递给方法。

def do_stuff(arg)
#do stuff with arg

然后你打电话

self.button1.clicked.connect(lambda : do_stuff('btn one'))
self.button2.clicked.connect(lambda : do_stuff('btn two'))

你可以传递任何你想要的,包括你要修改的MainWindow实例

关于python - PyQT - 从其他函数修改主窗口小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024990/

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