Как сделать так, чтобы приложение которое открывают в полный экран сохраняло пропорции

В общем мне нужно сделать так чтобы все пропорции сохранялись код не нужен, но я вставлю:

from tkinter import *

win = Tk()
win.title('имя')
win.geometry('1080x720')
win.state('zoomed')


Lt = Label(win, text='', font='Arial 30 bold', fg='white')
Lt.place(x=540, y=90, anchor=CENTER)
Bs = Button(win, text='Начало', font='Arial 40 bold', fg='white')
Bs.place(x=540, y=180, anchor=CENTER)


mainloop()

всем спасибо


Ответы (1 шт):

Автор решения: EugK

Вам нужно использовать метод

win.bind('<Configure>', ...) 

для отслеживания изменений размеров окна и пересчитывать размеры и позиции всех элементов внутри интерфейса. Получится что-то вроде этого:

from tkinter import *


def update_positions():
    width = win.winfo_width()
    height = win.winfo_height()

    label_font_size = int(min(width, height) * 0.03)  # Размер шрифта для метки
    Lt.config(font=f'Arial {label_font_size} bold')
    Lt.place(x=width // 2, y=height // 8, anchor=CENTER)


def on_resize(event):
    update_positions()


win = Tk()
win.title('Пример')
win.geometry('800x600')
win.state('zoomed')

Lt = Label(win, text='Текст', fg='white', background='blue')
Lt.place(x=540, y=90, anchor=CENTER)

win.bind('<Configure>', on_resize)

win.after(100, update_positions)

win.mainloop()
→ Ссылка