【发布时间】:2020-01-05 00:21:14
【问题描述】:
这是我打算编写的程序的视图和控制器部分。我的问题是为什么我看不到我的网格。我的怀疑是我没有正确继承。
我认为问题在这里发生:
"self.frame=Small_Frame(self)"
这是我从我的代码中理解的。 Controller 类继承自 tk。类 View 继承自 tk.Frame。到这里一切正常。
class Small_Frame 是我的客户小部件。网格只是使用 grid() 方法的 Small_Frame 类的 12 个实例。我不知道为什么它没有出现。请帮我理解。谢谢你。
import tkinter as tk
class View(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent, bg= "yellow", bd =2, relief = tk.RIDGE)
self.parent = parent
self.controller = controller
self.pack(fill=tk.BOTH, expand=1)
for r in range(3):
self.rowconfigure(r, weight=1)
for c in range(4):
self.columnconfigure(c, weight=1)
self.frame=Small_Frame(self)
self.frame.grid(row = r, column = c, padx=1, pady = 1, sticky=
(tk.N, tk.S, tk.W, tk.E))
class Small_Frame(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, borderwidth=1, relief="groove")
self.parent = parent
self.pack(fill=tk.BOTH, expand=1)
class Controller():
def __init__(self):
self.root = tk.Tk()
self.view = View(self.root, self)
self.root.title("notbook my own try")
self.root.geometry("1200x650")
self.root.config(bg="LightBlue4")
self.root.mainloop()
if __name__ == "__main__":
c = Controller()
【问题讨论】:
标签: python-3.x model-view-controller tkinter grid widget