如何使 Python Tkinter 标签文本随根 window 一起自动调整大小?

How can you make Python Tkinter Label text resize automatically along with the root window?

我正在尝试制作一个位于根 window 中间并随其调整大小的 tkinter 标签。

有什么简单的方法可以只使用 .place() 而不使用 .grid() 吗?

这是我的代码:

from tkinter import *

root= Tk()
root.geometry('200x200')

my_label= Label(root, text= 'Hello World!', font= ('Calibri', 20))
my_label.place(relx= 0.5, rely= 0.5, anchor= CENTER)

root.mainloop()

您可以跟踪 window 大小变化并按比例更改标签上的字体大小。

from tkinter import *

i = 12

def config(event):
    global i
    i = 12
    w = root.winfo_width()
    h = root.winfo_height()
    k = min(w, h) / 200
    i = int(i + i*k)
    my_label['font'] = ('Calibri', i)


root= Tk()
root.geometry('200x200')

root.bind("<Configure>", config)

my_label= Label(root, text= 'Hello World!', font= ('Calibri', i))
my_label.place(relx= 0.5, rely= 0.5, anchor= CENTER)

root.mainloop()

使用与上面相同的代码,不要使用的地方。您可以使用 packgrid.

from tkinter import *

root= Tk()
root.geometry('200x200')

my_label= Label(root, text= 'Hello World!', font= ('Calibri', 20))
my_label.pack(padx=20, pady=50, fill=BOTH, expand=True)

root.mainloop()