在Tkinter GUI中创建框架类
我正在做一个图形用户界面(Gui),我想知道如何创建一个类来实现一个框架(frame)。
比如:
class WindowContent(Tkinter.?)
""" This class would create a frame for my program window """
class App(Tkinter.Tk):
""" main window constructor """
def __init__(self):
Tkinter.Tk.__init__(self)
program_window = WindowContent ?
self.config(window = window_content) ?
祝好,
2 个回答
0
你为什么想要一个可以创建多个窗口的类呢?用一个类来创建多个窗口其实不是个好主意。你不需要一个单独的类来做到这一点。
要么为每个窗口创建不同的类,要么在你的应用里写方法来创建每个窗口。我个人更喜欢后者,但如果你想要一个可以在多个地方使用的窗口,有时候创建一个类也是有道理的。
当我做图形用户界面(GUI)的时候,我会这样组织我的代码:
class App(Tkinter.Tk):
def __init__(self):
Tkinter.Tk__init__(self)
self.menubar = self.makeMenubar(...)
self.frame1 = self.makeFrame1(...)
self.frame2 = self.makeFrame2(...)
self.configure(menu=self.menubar)
self.frame1.grid(...)
self.frame2.grid(...)
这样,每个主要部分都有自己的方法,可以隐藏创建界面元素的细节。当然,你可以让每个窗口成为一个自定义对象,但通常这样做并不是必要的。
2
我找到了答案:
class WindowProgram(Tkinter.Frame)
""" This class creates a frame for my program window """
def __init__(self, parent):
Tkinter.Frame.__init__(self, parent)
class App(Tkinter.Tk):
""" application constructor """
def __init__(self):
Tkinter.Tk.__init__(self)
self.window_program = Window_Program(self)