start build test
This commit is contained in:
135
app/pages/Main.py
Normal file
135
app/pages/Main.py
Normal file
@@ -0,0 +1,135 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user