在Tkinter中,什么控制自动调整窗口大小?

2024-10-01 15:30:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

每次我按下按钮,可见窗口的大小都会改变以适应另一个标签。但是,如果我手动(用鼠标)调整窗口大小,那么它会停止这种自动调整大小的行为,从那时起,我必须手动更改窗口的大小,以便在添加新按钮时查看它们。在

什么决定了顶层窗口的大小是由应用程序还是用户控制的?在

用户手动调整大小后,应用程序如何重新自动调整大小?在


Tags: 用户testself应用程序initdefbuttonroot
1条回答
网友
1楼 · 发布于 2024-10-01 15:30:17

规则很简单——只要给顶层窗口一个固定的大小,它就有一个固定的大小,否则它“缩小以适应”。在

有两种方法可以给顶层窗口一个固定的大小:用户可以手动调整它的大小,或者你的应用程序代码可以在启动时调用^{}给它一个大小。在

若要重置原始行为,请为窗口指定空几何体。例如:

def __init__(self,parent):
    ...
    self.b2 = Button(self, text="Reset", command=self.b2Press)
    self.b2.pack()

def b2Press(self):
    self.winfo_toplevel().wm_geometry("")

相关问题 更多 >

    热门问题