use tabs will lose some ...
Description
Code example to reproduce the issue:
(paste your program here)
Describe the results you received:
Describe the results you expected:
Additional information you deem important (e.g. issue happens only occasionally):
Flet version (pip show flet):
(paste your output here)
Give your requirements.txt file (don't pip freeze, instead give direct packages):
(The requirements)
Operating system:
Additional environment details:
from flet_core import MainAxisAlignment import flet as ft
from src.utils.routes_url import TemplateRoutes import flet_easy as fs from flet_contrib.color_picker import ColorPicker
edit_template_page = fs.AddPagesy() @edit_template_page.page(route=TemplateRoutes.EDIT_URL) def edit_template(data: fs.Datasy,temp_name:str): def back_choose(e): e.page.go(TemplateRoutes.MAIN_URL) e.page.update()
def get_row():
return ft.Row(
alignment=MainAxisAlignment.START,
spacing=20,
)
def get_col():
return ft.Column(
alignment=MainAxisAlignment.START,
spacing=20,
) def get_title(text): return ft.Text(text, theme_style=ft.TextThemeStyle.TITLE_MEDIUM, weight=ft.FontWeight.BOLD)
def __add_video_config(grade):
rotation = ft.Slider(value=0,min=0,max=360,divisions=360,label="{value}°") # 旋转
scale = ft.Slider(value=100,min=0,max=200,divisions=300,label="{value}%")
v = get_row()
# v.expand = True
# v.spacing = 20
v.controls = [ft.Text("旋转角度"),rotation, ft.Text("缩放比例"),scale]
z = ft.Container(
content=v,
alignment=ft.alignment.center,
padding=ft.padding.only(left=20,bottom=0)
)
return z
def __add_text_config(grade):
color_text = ft.TextField("#ffffff",
border=ft.InputBorder.UNDERLINE,
hint_text="请选择颜色",
width=200
)
font = ft.TextField(
value="宋体",
border=ft.InputBorder.UNDERLINE,
hint_text="请输入字体",
width=200
)
color_picker = ColorPicker(
color="#000000",
width=200
)
def open_color_picker(e):
d.open = True
page.update()
def change_color(e):
color_icon.icon_color = color_picker.color
color_text.value = color_picker.color
d.open = False
page.update()
def close_dialog(e):
d.open = False
d.update()
d = ft.AlertDialog(
content=color_picker,
actions=[
ft.TextButton("OK", on_click=change_color),
ft.TextButton("Cancel", on_click=close_dialog),
],
actions_alignment=ft.MainAxisAlignment.END,
on_dismiss=change_color,
)
v = get_row()
color_icon = ft.IconButton(icon=ft.icons.BRUSH, on_click=open_color_picker)
page.dialog = d
font_size =ft.TextField(
value="10",
input_filter=ft.NumbersOnlyInputFilter(),
border=ft.InputBorder.UNDERLINE,
hint_text="请输入字体",
width=200
)
v.controls= [ft.Text("颜色"),color_text,color_icon,ft.Text("字体"),font,ft.Text("字体大小"),font_size]
new_row1 = get_row()
x_position = ft.Slider(value=0,min=-3000,max=3000,divisions=6000,label="{value}-------x位置,单位px")
y_position = ft.Slider(value=0,min=-3000,max=3000,divisions=6000,label="{value}---------y位置,单位px")
scale_uniform = ft.TextField(
value="1",
input_filter=ft.NumbersOnlyInputFilter(),
border=ft.InputBorder.UNDERLINE,
hint_text="缩放比例",
width=200
)
new_row1.controls = [ft.Text("x轴位置"),x_position,ft.Text("y轴位置"),y_position,ft.Text("缩放比例"),scale_uniform]
z = ft.Container(
content=ft.Column([v,new_row1],alignment=MainAxisAlignment.START,spacing=20),
alignment=ft.alignment.center,
padding=ft.padding.only(left=20)
)
return z
page = data.page
params = data.url_params
head = ft.Container(content=ft.Row(
[
ft.TextField(
value=temp_name,
label="模板名称",
text_size=30,
border=ft.InputBorder.NONE,
hint_text="请输入模板名称"
),
ft.Row(
[
ft.ElevatedButton(
"保存",
icon=ft.icons.SAVE,
on_click=back_choose,
),
ft.ElevatedButton(
"返回",
icon=ft.icons.ARROW_BACK,
on_click=back_choose,
)
],
alignment=MainAxisAlignment.CENTER,
spacing=50,
),
],
alignment=MainAxisAlignment.SPACE_BETWEEN,
),
padding=10,
)
ft.Dropdown(
width=100,
options=[
ft.dropdown.Option("Red"),
ft.dropdown.Option("Green")
],
)
video_canvas = ft.Dropdown(
width=200,
options=[
ft.dropdown.Option("1080:1920"),
ft.dropdown.Option("1920:1080"),
],
)
enable_denoise = ft.Dropdown(
width=200,
options=[
ft.dropdown.Option("开启"),
ft.dropdown.Option("关闭"),
],
)
volume = ft.Slider(min=-100,max=20,divisions=120,label="{value} db",width=200) # 音量
basic_list = [ft.Text("音量"),volume,ft.Text("画布"),video_canvas,ft.Text("降噪"),enable_denoise]
basic = get_row()
basic.controls = basic_list
basic_controls = ft.Container(content=basic,padding=ft.padding.only(left=20))
basic_config = ft.ExpansionTile(
title=ft.Text("基础设置"),
subtitle=ft.Text("这里设置视频的基础参数"),
affinity=ft.TileAffinity.PLATFORM,
maintain_state=True,
controls=[basic_controls],
initially_expanded=True,
shape=ft.StadiumBorder(),
)
video_config = ft.ExpansionTile(
title=ft.Text("视频设置"),
subtitle=ft.Text("这里设置视频的参数,一级是说普通的视频参数,二级是说重点字词的视频参数,三级是超级重点的字词的视频参数"),
affinity=ft.TileAffinity.PLATFORM,
maintain_state=True,
controls=[],
initially_expanded=True,
shape=ft.StadiumBorder(),
)
video_tabs = ft.Tabs(
tabs=[
ft.Tab(
text="普通句",
content=__add_video_config("grade1"),
),
ft.Tab(
text="重点句",
content=__add_video_config("grade2"),
),
ft.Tab(
text="超级重点",
content=__add_video_config("grade3"),
),
],
tab_alignment=ft.TabAlignment.FILL,
expand=True,
)
for i in range(0, 3):
video_config.controls.append(video_tabs)
text_tabs = ft.Tabs(
tabs=[
ft.Tab(
text="普通",
content=__add_text_config("grade1"),
),
ft.Tab(
text="重点字词",
content=__add_text_config("grade2"),
),
ft.Tab(
text="超级重点",
content=__add_text_config("grade3"),
),
ft.Tab(
text="视频标题",
content=__add_text_config("grade4"),
),
],
tab_alignment=ft.TabAlignment.FILL,
expand=True,
)
beauty_tabs = ft.Tabs(
tabs=[
ft.Tab(
text="美颜",
content=__add_video_config("普通"),
),
ft.Tab(
text="美体",
),
ft.Tab(
text="美型",
),
],
tab_alignment=ft.TabAlignment.FILL,
expand=True,
)
video_config.controls = [video_tabs]
temp_v = ft.Row(
[
head,
ft.Divider(
height=1,
),
basic_config,
ft.Container(
content=ft.Text("视频设置",size=16),
padding=ft.padding.only(left=20)
),
video_config,
text_tabs,
# beauty_tabs
],
scroll=ft.ScrollMode.AUTO,
wrap=True,
)
return temp_v
Please fill the issue template with all the information.