2012-10-11 42 views
2


我想用Tkinter创建一个GUI程序。我的想法是一个带menuBar和MainFrame的mainWindow,它显示动态内容。
我想这个添加的大型机:Tkinter(动态)框架不显示

MainFrame = Frame(self, bd = '2') 
MainFrame.pack(anchor = CENTER) 

但没有任何反应。有什么想法吗?谢谢你的帮助。



程序代码:

class View(Tk): 
    def __init__(self): 
     Tk.__init__(self) 
     self.title('Device Configurator') 
     self.geometry('500x400') 
     self.resizable(0,0) 

     self.countFrame = Frame(self, bd = 2, relief = RIDGE) 
     self.countFrame.pack(pady = 10, padx = 5)  

     MainFrame = Frame(self, bd = '2') 
     MainFrame.pack(anchor = CENTER) 

     menubar = Menu(self) 
     filemenu = Menu(menubar, tearoff=0) 
     filemenu.add_command(label='Configure Devices', command= None) 
     filemenu.add_command(label='Exit', command=self.quit) 
     menubar.add_cascade(label='File', menu=filemenu) 

     infomenu = Menu(menubar, tearoff = 0) 
     infomenu.add_command(label='About', command = None) 
     menubar.add_cascade(label='Info', menu = infomenu) 

     self.config(menu = menubar) 



class Controller(object): 
    def __init__(self): 
     self.view = View() 
     self.view.mainloop() 

c = Controller() 

回答

3

事实上,你的框架添加成功,但大小为零(而且看不见的!)。

您可以添加一些内容,或要求布局管理器为其提供所有可用空间MainFrame.pack(expand=True, fill="both")

为了使其可见,borderwith(别名bd)是不够的。它必须与救济相结合(例如relief=SUNKEN)。另一种“看到”你的框架的方法是设置一个background