Tkinter(动态)帧不显示

时间:2012-10-11 07:25:01

标签: python layout tkinter frame


我想用Tkinter创建一个GUI程序。我的想法是一个带有menuBar和MainFrame的mainWindow,它显示了动态内容。
我想通过这个添加MainFrame:

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

1 个答案:

答案 0 :(得分:3)

事实上,您的框架已成功添加,但尺寸为零(而且不可见!)。

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

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