我有一个类似于这样的MainWindow:
def __init__(self, parent = None):
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.showMaximized()
menu=mainMenu.MainMenu()
classification=classificationMain.ClassificationMain()
self.stackedWidget.addWidget(menu)
self.stackedWidget.addWidget(classification)
self.stackedWidget.setCurrentWidget(menu)
self.stackedWidget.showFullScreen()
#connections
menu.pushButton.clicked.connect(self.showClassification)
classification.backButton.clicked.connect(self.showMainWindow)
def showClassification(self ):
self.stackedWidget.setCurrentIndex(3)
def showMainWindow(self):
self.stackedWidget.setCurrentIndex(2)
主窗口等待来自其他对话框的信号。现在,分类对话框中有另一个StackedWidget,因为它作为应用程序重要部分的主窗口工作。它的外观如下:
class ClassificationMain(QDialog, Ui_Dialog):
def __init__(self, parent = None):
QDialog.__init__(self, parent)
self.setupUi(self)
choose=choosePatient.ChoosePatient()
self.stackedWidget.addWidget(choose)
self.stackedWidget.setCurrentWidget(choose)
现在,我希望每次从MainMenu中的“展示分类”按钮点击时重新加载ChoosePatient内部的数据,但是现在数据仅在MainWindow的classification=classificationMain.ClassificationMain()行中加载一次。
我想过需要将ChoosePatient内的一个槽与MainMenu内的“Show Classification”按钮的点击连接,但这需要MainMenu的实例,这是不可能的。
如何让ChoosePatient的一个方法在“父”窗口中的按钮点击时执行? (如果这不是使用pyqt窗口的正确方式,请告诉我)