【发布时间】:2022-01-05 08:31:27
【问题描述】:
我正在学习使用 tkinter 制作应用程序,同时我也在学习语言本身。我在一本书中找到了如何创建第二个窗口(设置窗口)的描述。但我不明白为什么self.parent = view.parent。
如果PreferencesWindow(): 类中没有指定parent 值,那么它从何而来?分隔两个变量(self.parent = view.parent)的意义何在?什么是视图?
我的主模块(类View):
import preferenceswindow
class View():
def __init__(self, parent, controller):
self.controller = controller
self.parent = parent
self.create_gui()
def create_edit_menu(self):
self.edit_menu.add_command(label="Preferences", command=self.on_preference_menu_clicked)
def on_preference_menu_clicked(self):
preferenceswindow.PreferencesWindow(self)
def create_gui(controller_instance):
root = Tk()
root.title("APP")
View(root, controller_instance)
root.mainloop()
偏好类看起来像这样:
class PreferencesWindow():
def __init__(self, view):
self.parent = view.parent
self.view = view
self.create_prefereces_window()
def create_prefereces_window(self):
self.pref_window = Toplevel(self.parent)
self.pref_window.title("preferences")
self.pref_window.transient(self.parent)
在我的书中没有解释这一刻。
【问题讨论】:
-
Stackoverflow 无意取代现有的教程或文档。您只需要更好地学习语言(您的问题实际上与 tkinter 本身无关)。