Как изменить размер всех виджетов и текста при изменении размера окна - PullRequest
0 голосов
/ 27 января 2019

Теперь я знаю, что уже существует множество подобных вопросов, но ни один из них не сработал, а многие устарели.Из того, что я собрал, люди всегда рекомендуют grid_rowconfigure и grid_columnconfigure, но это не касается размеров текста.Вот простой пример:

from tkinter import *
root=Tk()

l1 = Label(root, text="This", borderwidth=2, relief="groove")
l1.grid(row=0,column=0,sticky='NSEW')

l2 = Label(root, text="That", borderwidth=2, relief="groove")
l2.grid(row=0,column=1,sticky='NSEW')

for i in range(1):
    root.grid_rowconfigure(i, weight=1)
for i in range(2):
    root.grid_columnconfigure(i, weight=1)

root.mainloop()

Я нашел этот сайт , но он с 2010 года, и его копирование не дало никаких результатов (конечно, после работы с именами импорта)

1 Ответ

0 голосов
/ 27 января 2019

Я обнаружил, что это будет работать:

from tkinter import *
import tkinter.font as tkFont
root=Tk()

my_font = tkFont.Font(size=10)
def resizer(event):
   if event.width in range(200,225):
      my_font.configure(size=10)   
   elif event.width in range(226,300):
      my_font.configure(size=20)
   elif event.width > 300:
      my_font.configure(size=30)

l1 = Label(root, text="This", borderwidth=2, relief="groove", font=my_font)
l1.grid(row=0,column=0,sticky='NSEW')

l2 = Label(root, text="That", borderwidth=2, relief="groove", font=my_font)
l2.grid(row=0,column=1,sticky='NSEW')

for i in range(1):
    root.grid_rowconfigure(i, weight=1)
for i in range(2):
    root.grid_columnconfigure(i, weight=1)

root.bind("<Configure>", resizer)
root.mainloop()

Вы можете изменить range(200,225) и т. Д. В соответствии с вашими потребностями и дополнительно elif, если требуется.

Это было найдено из этого ответа .И отредактировано, чтобы вписаться в этот скрипт.

...