在Tkinter Gui中创建框架类

时间:2010-08-20 07:21:43

标签: python user-interface class tkinter frame

我正在研究一个Gui,我想知道如何创建一个实现框架的类。

e.g。

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) ?

RGDS,

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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(...)

通过这种方式,每个主要部分都有自己的方法来隐藏窗口小部件创建的细节。当然,您可以将每个框架都设置为自定义对象,但通常这是不必要的。