2
我有麻煩理解與Python/PyQt的類繼承。我有一個MainWindow
和一個Popup QWidget
。在QWidget
在彈出式窗口中打開後,我想與MainWindow
的self.label1
進行交互,但我不知道該怎麼做。我只知道另一種方式,從MainWindow
裏面的彈出窗口到達所有窗口小部件,反之亦然。PyQt類的繼承
下面是一個例子,的MainWindow
self.label1
應該得到另一個文本MyPopup
在新窗口打開後:
import sys
from PyQt4.Qt import *
class MyPopup(QWidget):
def __init__(self):
QWidget.__init__(self)
# I want to change the lable1 of MainWindow
self.cw.label1.setText('hello')
class MainWindow(QMainWindow):
def __init__(self, *args):
QMainWindow.__init__(self, *args)
self.cw = QWidget(self)
self.setCentralWidget(self.cw)
self.btn1 = QPushButton("Click me", self.cw)
self.btn1.setGeometry(QRect(50, 50, 100, 30))
self.label1 = QLabel("No Commands running", self.cw)
self.connect(self.btn1, SIGNAL("clicked()"), self.doit)
self.w = None
def doit(self):
self.w = MyPopup()
self.w.setGeometry(QRect(100, 100, 400, 200))
self.w.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
myapp = MainWindow()
myapp.show()
sys.exit(app.exec_())
非常感謝你,對於這個愚蠢的問題感到抱歉。我慢慢習慣上課... – snowflake