【发布时间】:2017-04-25 09:08:55
【问题描述】:
我有一个顶级类 DesignWindow,它包含一个 10x10 的按钮数组,当我以此处讨论的方式调用它时:Tkinter; Toplevel in a new class 它在最后一个窗口中创建窗口。
我做错了什么?唯一的区别是我的“根”窗口(带有菜单)是 tk.Frame 而不是引用问题中的 tk.Tk。
class MainWindow(tk.Frame):
"""Draw the main window"""
def __init__(self, parent):
tk.Frame.__init__(self, parent, background='grey')
self.parent = parent
self.menuscreen = MenuScreen(self)
self.grid()
self.menuscreen.design.grid(column=0, row=0)
class MenuScreen(tk.Frame):
"""Create the menu screen"""
def __init__(self, parent):
self.design = tk.Button(command=self.create_design_window, text="Design")
def create_design_window(self):
self.design_window = DesignWindow(self)
class DesignWindow(tk.Toplevel):
"""Frame for design mode"""
def __init__(self, main):
tk.Toplevel.__init__(self)
按钮的编辑生成:
self.btn = [[0 for x in range(10)] for x in range(10)]
for column in range(10):
for row in range(10):
self.btn[column][row] = tk.Button(main)
self.btn[column][row].grid(column=column, row=row)
【问题讨论】:
-
MenuScreen.__init__是否不需要调用它是超级的,并且您不需要将父级传递给两个超级构造函数。 -
真的很抱歉,忘记添加实际执行渲染位的顶级类:/
-
您是否在问为什么应该在顶层的小部件却在另一个窗口中?如果是这样,您需要向我们展示您是如何在顶层创建窗口的。
-
这听起来像我在问什么。至于我如何创建每个小部件,它是 tk.Button() 的一个实例,我不确定您是如何在顶层“创建一个窗口”的,并且没有看到任何提及。也许您可以链接一个解释这一点的资源?