Как автоматически изменять размер и положение элементов управления при изменении размера окна?Python

Программы на Python
Anonymous
Как автоматически изменять размер и положение элементов управления при изменении размера окна?

Сообщение Anonymous »

Я пытаюсь разработать черновое приложение с помощью Python Flet. Моя цель — найти способ позиционировать или, альтернативно, указать размеры элементов управления относительно размеров их родительских элементов управления. Например, ширина кнопки составляет 70 % ширины контейнера, что, в свою очередь, составляет 30 % ширины страницы. Таким образом, размеры каждого элемента управления автоматически изменяются при изменении размера страницы пользователем, оставаясь в тех же пропорциях.
Мне показалось интересным это свойство, но когда я уменьшаю размер окна, что-то все равно не работает. Я бы хотел, чтобы каждый элемент управления на странице уменьшал свои размеры пропорционально размеру окна.

Код: Выделить всё

import flet as ft

def main(page: ft.Page):
page.scroll = ft.ScrollMode.AUTO

### AMBER LEFT CONTAINER ###
col1 = ft.Column([ft.IconButton(icon=ft.icons.UPLOAD_FILE),
ft.IconButton(icon=ft.icons.PICTURE_AS_PDF_OUTLINED),
ft.IconButton(icon=ft.icons.SAVE),])

cont1 = ft.Container(content=col1,
height = page.height,
expand=3, #30% of the page width
bgcolor=ft.colors.AMBER,)
### LEFT CONTAINER ###

### RED RIGHT CONTAINER ###
row0 = ft.Row([ft.Image(src=f"/icon.png", width=200, height=100, fit=ft.ImageFit.FILL,),],
alignment=ft.CrossAxisAlignment.CENTER)
row1 = ft.Row([ft.IconButton(icon=ft.icons.ARROW_CIRCLE_LEFT),
ft.Text("71/155"),
ft.IconButton(icon=ft.icons.ARROW_CIRCLE_RIGHT),])
row2 = ft.Row([ft.TextField(label="Find this keyword inside doc"),
ft.IconButton(icon=ft.icons.FIND_IN_PAGE)])
row3 = ft.Row([ft.TextField(label="Extract these pages from doc", expand=20),
ft.IconButton(icon=ft.icons.FIND_IN_PAGE, expand=1),])

cont2 = ft.Container(content=ft.Column([row0, row1, row2, row3]),
height = page.height,
expand=7, #70% of the page width
bgcolor=ft.colors.RED,)
### RIGHT CONTAINER ###

page.add(ft.Row([cont1, cont2]))
page.update()

ft.app(target=main, assets_dir="assets")
Как указать размеры элементов управления, чтобы их размер изменялся пропорционально размеру окна?


Подробнее здесь: https://stackoverflow.com/questions/787 ... is-resized

Вернуться в «Python»