2015-12-19 3 views
1

Я искал в Интернете, и я попытался решить его самостоятельно, но я не смог его решить. Даже после рендеринга виджета функции winfo возвращаются неправильную высоту и ширинуwinfo_width() возвращает 1 даже после использования пакета()

from tkinter import * 

root = Tk() 

frame = Frame(root) 

label1 = Label(frame, text = "hello") 
label1.pack() 

label2 = Label(frame, text = "hello") 
label2.pack() 

label3 = Label(frame, text = "hello") 
label3.pack() 

frame.pack()  
print(frame.winfo_width(),frame.winfo_height()) 

#prints "1 1" 

root.mainloop() 

ответ

2

Вы должны update_idletasks:

вызовы все ожидающие праздные задачи, без обработки каких-либо других событий. Это можно использовать для управления геометрией и при необходимости перерисовывать виджеты, не вызывая никаких обратных вызовов.

frame.pack() 
root.update_idletasks() 
print(frame.winfo_width(), frame.winfo_height()) 
+0

Спасибо так много дружище ... Ты такой спасатель ... Я пройду на хорошую карму :) –

+0

Нет вероятн, вы радушны –

+0

Это не сработало для меня. – ismailarilik

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