Форум сайта python.su
0
Шалом всем!
бьюсь над текстом уже час!
код таков:
from Tkinter import *
master = Tk()
master.geometry('400x400+200+200')
frame = Frame(master)
frame.pack(side=TOP)
label = Label(frame, text='current: ')
label.grid(row=0, sticky=W)
label.pack(side=LEFT)
master.mainloop()
надо оставить фрэйм прижатым к верху,запихать в него лэйбл и при этом текст в лэйбле прижать к левой части окна. Пока этот текст сидит по центру и я был бы рад если бы мне объяснили как это сделать.
Заранее спасибо
Офлайн
4
Если я правильно понял тебя, попробуй так
from Tkinter import * master = Tk() master.geometry('400x400+200+200') frame = Frame(master) frame.pack(side=TOP, anchor=NW) label = Label(frame, text='current: ') label.grid(row=0, sticky=W) label.pack(side=LEFT) master.mainloop()
Офлайн
0
Спасибо огромное!
Офлайн
63
1. Оберните код в теги.
2. Фрейм обтягивает label вне зависимости от его размеров, поэтому выровнять label можно только задав предварительно его размеры и используя свойство propagate() для блокировки обтягивания. Рамка работат как презервуар.
3. Я вообще не понял зачем Вам рамка. Вы просто хотите применить разные упаковщики на одном окне?
4. Существует еще менеджер .place() который позволяет явно задавать рассположение виджета либо в процентах от общего окна
P.S. Тема должна быть в разделе GUI :)
Офлайн
63
Romiss
Вы саму рамку запихали в верхний левый угол. Виджет label ушел вместе с ней. Это не решает поставленную задачу.
Если использовать такое решение, то код можно упростить :)
from Tkinter import * master = Tk() master.geometry('400x400+200+200') frame = Frame(master) frame.pack(anchor=NW) label = Label(frame, text='current: ') label.grid(row=0) label.pack() master.mainloop()
Отредактировано 4kpt (Окт. 19, 2013 22:54:57)
Офлайн
4
4kpt
Согласен с вами. Я вышел из положения не обдумано. Признателен за наставление на путь истинный.
Офлайн
63
Та бросьте. Какое наставление. Решили проблему и решили. Не парьтесь.
Главное, что просящий остался доволен :)
Отредактировано 4kpt (Окт. 19, 2013 23:11:47)
Офлайн