【发布时间】:2018-08-27 21:47:09
【问题描述】:
我正在尝试创建一个应用程序,其中在主框架内有两个其他框架(并排)。
左框架由始终可见的按钮组成。这些按钮将更改右框架的内容。
我通过将每个按钮分配给一个定义来成功完成此操作,该定义重新创建左框架中的按钮,清除右框架上的内容并重写进入右框架的内容。
这很有效,但我很想了解更多不同/更有效的方法。
过去几天我一直在寻找如何包含课程,这就是我发现的。
class SeaofBTCapp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
frame = StartPage(container, self)
self.frames[StartPage] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
这个类有助于创建一个控制器,您可以在其中导航框架。
我遇到的问题是创建一个始终可见的框架,因为def show_frame 更改了整个窗口的内容。
我有一个想法可以将这个结构添加到一个名为“RightFrame”的类中,该类不是主窗口,但我不知道如何使框架和按钮相互通信。
我是编码的完整初学者,因此任何指针都将不胜感激。
【问题讨论】:
标签: python-3.x class tkinter object-oriented-database