次のような 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)
MainWindows は残りのダイアログからの信号を待ちます。現在、分類ダイアログには別の 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() の行で 1 回だけデータがロードされるようになりました。
MainMenu 内の [分類を表示] ボタンをクリックして ChoosePatient 内のスロットを接続する必要があると考えていましたが、MainMenu のインスタンスが必要ですが、これは不可能です。
「親」ウィンドウのボタンがクリックされるたびにChoosePatientのメソッドを実行するにはどうすればよいですか? (また、これが pyqt ウィンドウを操作する正しい方法でない場合は教えてください)