2010-08-20 113 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