2014-05-25 80 views
1

我有一個tkinter窗口,我可以使全屏,使用geometry(width+height)overrideredirect(True),但現在當我將窗口恢復到正常大小,並執行命令overrideredirect(False),我似乎無法得到窗口自動遵循其中的小部件的大小,就像我沒有改變大小時那樣。你知道我可以返回窗口自動跟蹤窗口小部件的大小嗎?先謝謝你!Tkinter幾何恢復正常

回答

2

呼叫與""值幾何讓它自己恢復到其自然的大小。

的Tkinter是基於TK,和tk docs說這對此事:

如果newGeometry被指定爲空字符串,則任何現有 用戶指定的幾何窗口被取消,窗口將 恢復到其小部件內部請求的大小。

0

我相信你正在尋找winfo_reqwidth/reqheight()方法。這些返回所需的寬度和高度的所有小部件是他們被調用的小部件的子項。只要插上那些進入geometry()方法你沒有去全屏你的恢復功能,像這樣以同樣的方式:

def fullscreen(): 
    root.overrideredirect(True) 
    root.geometry('{0}x{1}+0+0'.format(root.winfo_screenwidth(), root.winfo_screenheight())) 

def restore(): 
    root.overrideredirect(False) 
    root.geometry('{0}x{1}'.format(root.winfo_reqwidth(), root.winfo_reqheight())) 

root = Tk() 

Button(root, text='Full Screen', command=fullscreen).pack() 
Button(root, text='Restore', command=restore).pack() 

root.mainloop()