import flet as ft import designer as ds main_loading=None class Main_page(ft.View): def __init__(self, page:ft.Page): self.page=page self.file_picker = ft.FilePicker(on_result=self.load_file) self.directory_picker = ft.FilePicker(on_result=self.load_directory) self.page.overlay.append(self.file_picker) self.page.overlay.append(self.directory_picker) self.selection_mode = ft.RadioGroup( content=ft.Row([ ft.Radio(value="file", label="Выбрать файл"), ft.Radio(value="directory", label="Выбрать папку") ]), value="file", on_change=self.on_mode_change ) self.file_url=ds.TextField( #width=380, expand=True, read_only=True ) self.button_load = ds.Button(on_click=self.clic_button_file, text="Выбрать файл") super().__init__( route="/main", horizontal_alignment=ft.CrossAxisAlignment.CENTER, vertical_alignment=ft.MainAxisAlignment.CENTER, #expand=True, scroll="auto", controls=[ ft.Row( controls=[ ft.Container( border_radius=ft.border_radius.all(10), bgcolor=ds.colors[4], height=80, expand=True, content=ft.Text("file loading",color=ds.colors[0],size=30), alignment=ft.alignment.center_left, ) ], expand=True, height=100, ), ft.Row( expand=True, height=500, controls=[ ft.Container(#болшой контейнер padding=10, expand=True, border_radius=ft.border_radius.all(10), bgcolor=ds.colors[4], content=ft.Column( controls=[ ft.Column( controls=[ ft.Container(#контенер с выбором режима padding=10, expand=True, bgcolor=ds.colors[3], border_radius=ft.border_radius.all(10), content=self.selection_mode ), ft.Container(#контенер с ссылкой на документ padding=10, expand=True, #width=500, bgcolor=ds.colors[3], border_radius=ft.border_radius.all(10), content=ft.Column( controls=[ self.file_url, ft.Container( #width=380, expand=True, alignment=ft.alignment.center_right, content=self.button_load ) ] ) ), ft.Container( height=100, alignment=ft.alignment.center_right, bgcolor=ds.colors[3], border_radius=ft.border_radius.all(10) ) ] ), ] ), ) ], ) ], ) def on_mode_change(self, e): """Обработчик изменения режима выбора""" if self.selection_mode.value == "file": self.button_load.text = "Выбрать файл" else: self.button_load.text = "Выбрать папку" self.page.update() def clic_button_file(self,e): if self.selection_mode.value == "file": self.file_picker.pick_files( allow_multiple=False, allowed_extensions=["xlsx", "xls"] ) else: self.directory_picker.get_directory_path() self.page.update() def load_file(self,e:ft.FilePickerResultEvent): if e.files is not None: for f in e.files: print(f"Выбранный файл: {f.path}") self.file_url.value = f.path self.page.update() def load_directory(self,e:ft.FilePickerResultEvent): if e.path is not None: print(f"Выбранная папка: {e.path}") self.file_url.value = e.path self.page.update()