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类中都有它们。谢谢!
答案 0 :(得分:4)
首先,有一种更好的方法将信号连接到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实例