2013-07-02 2 views
1
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 или что-то в этом роде! Но все, что я вижу, это пустое окно. Я не уверен, почему я не вижу вещи, может кто-то указать, что я делаю неправильно?Почему я не могу увидеть свои метки LabelFrames?

ответ

1

Чтобы отобразить 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() 
+0

Хорошо. Я добавлю ярлыки, которые планирую наложить на них, и посмотрю, исправляет ли это это. – Broseph

1

Поскольку вы не даете labelframes детей, и вы не указали ширину и высоту, размер каждого кадра будет 1 пиксел. Итак, они есть на экране, вы просто не можете их видеть.

Если вы поместите что-то в каждый кадр или дадите им ширину и высоту, они появятся.

Смежные вопросы