sagen Lets Ich habe 2 Fenster, von denen einer auf einem Menüpunkt klicken um die andere öffnet:pyqt Prüfung wenn andere Fenster geschlossen
class ProjectWindow(QtWidgets.QMainWindow, project_window_qt.Ui_ProjectWindow):
def __init__(self):
super(ProjectWindow, self).__init__()
# Setup the main window UI
self.setupUi(self)
self.new_project_window = None
# Handle menu bar item click events
self.actionNewProject.triggered.connect(self.new_project)
def new_project(self):
self.new_project_window = project_new_window.NewProjectWindow()
self.new_project_window.show()
def refresh_projects(self):
with open(os.path.join(self.directory, 'projects.txt'), 'r') as f:
projects = json.load(f)
return projects
und
class NewProjectWindow(QtWidgets.QDialog, project_new_window_qt.Ui_NewProjectWindow):
def __init__(self,):
super(NewProjectWindow, self).__init__()
# Setup the main window UI
self.setupUi(self)
Sobald der Benutzer schließt new_project_window
, Ich möchte die refresh_projects
-Methode in der ProjectWindow
Klasse aufgerufen werden.
Ich dachte über ein Ereignis-Listener Einrichtung zu überprüfen, wenn new_project_window
geschlossen ist, und refresh_projects
rufen Sie dann einmal das passiert, aber das Fenster gerade schließt unmittelbar nachdem sie öffnet:
def new_project(self):
self.new_project_window = project_new_window.NewProjectWindow(self.directory, self.project_list)
self.new_project_window.onClose.connect(self.refresh_projects)
self.new_project_window.show()
Ist das der richtige Ansatz? Oder gibt es eine Möglichkeit, refresh_projects
direkt aus dem Objekt new_project_window
aufzurufen?
was ist onClose? – eyllanesc