为什么我看不到我的实验室框架?

2024-05-17 08:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

import Tkinter as tk
from Tkinter import Frame

class App(Frame):
    def __init__(self, pixwidth, pixheight):
        self.__initialize_master(pixwidth, pixheight)
        Frame.__init__(self, self.master)
        self.pack() 

        self.__initialize_top()

    def __initialize_master(self, width, height):
        self.master = tk.Tk()
        self.master.geometry("%dx%d+100+100" % (width, height))

    def __initialize_top(self):
        self.top_frames = [tk.LabelFrame(self, text="Status"),
                       tk.LabelFrame(self, text="Graph"),
                       tk.LabelFrame(self, text="Universal Controls")]
        for i in xrange(3):
            self.top_frames[i].grid(row=0,
                                    column=2*i,
                                    rowspan=4,
                                    columnspan=2,
                                    sticky='nswe')

    def run(self):
        self.master.mainloop()

if __name__=="__main__":
    app = App(800, 600)
    app.run()

我不太确定我应该看到什么,但我希望至少能看到LabelFrames的标题之类的东西!但我看到的只是一扇空窗。我不知道为什么我看不见东西,有人能指出我做错了什么吗


Tags: textimportselfmasterappinittkintertop
2条回答

要显示LabelFrame,应该至少向其添加一个小部件

def __initialize_top(self):
    self.top_frames = [tk.LabelFrame(self, text="Status"),
                   tk.LabelFrame(self, text="Graph"),
                   tk.LabelFrame(self, text="Universal Controls")]
    for i in xrange(3):
        self.top_frames[i].grid(row=0,
                                column=2*i,
                                rowspan=4,
                                columnspan=2,
                                sticky='nswe')
        lb = tk.Label(self.top_frames[i], text='test') # <  -
        lb.pack()

因为您没有给labelframes任何子帧,也没有指定宽度和高度,所以每个帧的大小将为1像素。所以,它们就在屏幕上,你就是看不见

如果你在每一帧中放一些东西,或者给它们一个宽度和高度,它们就会出现

相关问题 更多 >