2010-08-20 68 views
1

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

例如

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,

回答

1

我找到了答案:

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) 
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(...) 

这样,每个主要部分都有自己的方法来隐藏控件创建的细节。当然,您可以将每个框架都作为自定义对象,但通常不需要。

+0

感谢您的回答。其实我已经为菜单栏做了一个班级(感谢你的帮助),所以我宁愿为这个框架做一个班级。我该怎么做? – Bruno 2010-08-20 11:28:27