如何在窗口调整大小时使用网格自动调整框架、tkinter小部件的大小?

如何在窗口调整大小时使用网格自动调整框架、tkinter小部件的大小?,tkinter,grid,python-3.7,autoresize,Tkinter,Grid,Python 3.7,Autoresize,我想创建一个由主框架组成的GUI,它包含几个框架,每个框架包含一个或多个tkinter小部件(标签、按钮、条目等等)。每个小部件都使用网格定位。我还希望,当我通过按下窗口右上角的窗口按钮或使用鼠标更改窗口尺寸时,所有窗口小部件和文本都能调整大小。 可能吗? 谢谢您是的,如果您使用grid()方法,尽管小部件大小是自动完成的。您必须更改小部件上的字体大小。为了根据窗口调整字体大小,您可能需要一些技巧。您可以在下面这样的事件中使用简单的if语句来获得不同的大小 window=Tk() def on_

我想创建一个由主框架组成的GUI,它包含几个框架,每个框架包含一个或多个tkinter小部件(标签、按钮、条目等等)。每个小部件都使用网格定位。我还希望,当我通过按下窗口右上角的窗口按钮或使用鼠标更改窗口尺寸时,所有窗口小部件和文本都能调整大小。 可能吗?
谢谢您

是的,如果您使用
grid()
方法,尽管小部件大小是自动完成的。您必须更改小部件上的字体大小。为了根据窗口调整字体大小,您可能需要一些技巧。您可以在下面这样的事件中使用简单的if语句来获得不同的大小

window=Tk()
def on_resize(自我,事件):
w_height=window.winfo_height()
w_width=window.winfo_width()
如果(w_高度>500,w_宽度>600):
a_label.configure(字体=(“Helvetica”,“16”)
其他:
配置(字体=(“Helvetica”,“14”)
window.bind(,在调整大小时)
也可以基于最初编程窗口的位置创建比例

programmed_高度=1080
编程宽度=1920
编程字体=16
window=Tk()
def on_resize(自我,事件):
w_height=window.winfo_height()
w_width=window.winfo_width()
如果(宽度/高度>编程宽度/编程高度):#比较比率
定标器=带高度/编程高度
其他:
定标器=宽度/编程宽度
字体大小=编程字体*缩放器
font_tuple=(“Helvetica”,str(int(font_size)))#int()应该截断任何小数点。如果愿意,也可以使用round()
window.bind(,在调整大小时)
此代码是抽象的,因此不一定正确。例如,未声明标签。我也不确定比率比较是否足以满足您的需要。因为它可能会过早更改缩放器(<1可能更好,因为它会显示从横向到纵向的过渡)


如果您有任何问题,请告诉我,也许我可以提供帮助。

请提供。谢谢您的回答!我会尝试