Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2014 06:52:29

tisul
Зарегистрирован: 2014-01-06
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Ширина Frame tkinter

Python 3.3

tk = Tk()
fr = Frame(master=tk,width=100,height=200)
fr.pack(expand='yes',fill='both')
print('ширина = ',fr.winfo_width())
mainloop()

Почему данный код выдает что

ширина = 1

в документации написано
winfo_width(self)
Return the width of this widget. - возвращает ширину этого виджета

Отредактировано tisul (Май 20, 2014 08:39:21)

Офлайн

#2 Май 20, 2014 09:30:27

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Ширина Frame tkinter

Предварительно нужно использовать

tk = Tk()
fr = Frame(master=tk,width=100,height=200)
fr.pack(expand='yes',fill='both')
tk.update_idletasks()  # обновить все размеры виджетов!!!
print('ширина = ',fr.winfo_width())
mainloop()

так как до построения Tkinter не может знать их размеров - их назначает система в зависимости от экрана, отступов и т.п.

P.S. И базовое окно принято называть root

P.S.S. Будут вопросы - пишите…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version