2015-05-26 4 views
0

Я тестировал что-то новое на Tkinter (я все еще новичок), но он продолжает терпеть неудачу ... может быть, кто-то может помочь?Разместите виджеты в рамки?

Я хотел создать окно с несколькими фреймами, чтобы я мог открывать и закрывать их и показывать таким образом различный контент. Однако я уже застрял, не имея возможности «разместить» в этом случае кнопку, в рамку. Вместо этого я получаю пустую рамку, в которой нет ничего ...

Причина, по которой я хочу использовать диспетчер мест, заключается в том, что я могу легко выбрать координаты x и y. Я не хочу создавать пустые столбцы только для того, чтобы кнопка появилась в середине экрана.

Вот код:

from Tkinter import * 

root = Tk() 
root.title("Tkinter window") 
root.geometry("800x600") 

StartFrame = Frame(root) 
StartFrame.pack() 

Button1 = Button(StartFrame, command = StartTkinter, text = "Start", bg = "white", fg = "black", height = 2, width = 15) 
Button1.place(x=0, y=50) 

root.mainloop() 

ответ

3

Проблема заключается в том, что вы забыли указать размеры кадра. Таким образом, по умолчанию он создается как 1 пиксель в высоту и 1 пиксель в ширину. Это означает, что его содержимое не будет видно в окне.

Чтобы устранить эту проблему, вы можете либо установить точные значения этих размеров при создании кадра:

StartFrame = Frame(root, height=600, width=800) 

или вы можете сделать:

StartFrame.pack(expand=True, fill="both") 

иметь каркас заполнить все имеющиеся пространство.

+0

Спасибо! Это решило это :-) – user3604362

+0

Значение по умолчанию - 1x1, а не 0x0, хотя для всех целей и целей эти два идентичны. –

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