Tkinter顶级窗口似乎有两种"模式":大小由应用程序决定,用户控制大小.考虑以下代码:
from tkinter import *
class Test(Frame):
def __init__(self,parent):
Frame.__init__(self,parent)
self.b1 = Button(self, text="Button 1",command=self.b1Press)
self.b1.pack()
def b1Press(self):
print("b1Press")
label = Label(self, text="Label")
label.pack()
root = Tk()
ui = Test(root)
ui.pack(fill='both', expand=1)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
每次按下按钮,可见窗口都会改变大小以适应其他标签.但是,如果我手动调整窗口大小(使用鼠标),则会停止此自动调整大小的行为,从那时起,我必须手动更改窗口的大小以查看添加时的新按钮.
是什么决定了顶层窗口的大小是否受应用程序或用户的控制?
用户手动调整大小后,应用程序如何重新获得自动调整大小?
Bry*_*ley 12
规则非常简单 - 顶级窗口在给定固定大小时具有固定大小,否则"收缩到适合".
有两种方法可以为顶级窗口提供固定大小:用户可以手动调整大小,或者应用程序代码可以调用wm_geometry以在启动时为其提供大小.
要重置原始行为,请为窗口指定一个空几何.例如:
def __init__(self,parent):
...
self.b2 = Button(self, text="Reset", command=self.b2Press)
self.b2.pack()
def b2Press(self):
self.winfo_toplevel().wm_geometry("")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3930 次 |
| 最近记录: |