0
私は、メニュー項目のクリックで他のを開く一つは2つの窓、考えてみましょう:ユーザーがnew_project_window
を閉じると、PyQtはチェック他のウィンドウを閉じたときに
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
と
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)
を私はrefresh_projects
メソッドをProjectWindow
クラスで呼びたいと思っています。
私はnew_project_window
を閉じたときに確認し、それが起こる一度refresh_projects
を呼び出すためにイベントリスナーを設定について思ったが、窓はそれが開いた直後に閉じ:
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()
は正しいアプローチですか?または、new_project_window
オブジェクトから直接refresh_projects
に電話する方法はありますか?
oncloseは何ですか? – eyllanesc