【发布时间】:2021-02-01 01:34:20
【问题描述】:
我正在尝试制作一个带有 GUI 的 Python 程序,其中将在画布上显示各种动画。我决定使用 MVC 模式和 Tkinter。启动我的程序时,应该会弹出一个窗口,您必须在显示 GUI 之前选择画布的尺寸。
但是,我找不到有效的方法来做到这一点。我尝试使用 Dialog、Toplevel、Frame 等,但由于我使用的是 MVC 模式,如果在设置窗口之后打开此 GUI 窗口,因为它尚未实例化,我无法找到如何将我的控制器功能与我的 GUI 链接.
class View(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.setting_window = SettingWindow(self)
self.setting_window.ok_button.configure(command=self.open_editor)
self.withdraw()
self.mainloop()
def open_editor(self):
map_dim = self.setting_window.getValues()
self.editor_window = Window(self, map_dim)
self.setting_window.destroy()
【问题讨论】:
-
您可以在数据结构(字典、命名元组或自定义类)中保留弹出窗口中 GUI 集的规范,以便在实例化 GUI 时使用。您可以让这个数据结构保存默认值(可能从文件中读取),以允许用户在需要时跳过设置步骤。
标签: python user-interface tkinter canvas model-view-controller