我正在编写一个程序flet
。添加了,每次刷新页面时BottomSheet
都会在特定条件下出现。page.open
当我添加它时,页面清空了,什么也没有。当我删除 时page.clean
,一切正常,但是当我更改页面时,前一个页面没有被删除,并且它们相互重叠。为什么我不能同时使用这两个功能?
代码:(短)
import flet as ft
#другие импорты
#база данных и т.д. и т.п.
def main(page: ft.Page):
#тут стоит настройка страницы (ширина\длина\цвет)
#тут стоят функции разные
def check_stake():
stake_data = db.get_stake()
return funcs.convert_iso(stake_data[1]) <= funcs.convert_iso(funcs.get_time())
def route_change(e):
page.clean() #вот тут чищу страницу
def go_stake(e):
page.go('/stake')
if check_stake():
stake_data = db.get_stake()
page.open(views.stake_sheet(funcs.count_stake(stake_data[0]), stake_data[1], go_stake)) #тут открывают sheet и все ломается
if page.route == '/':
#тут всякие функции и page.add, короче views
#...
#много кода страниц
#...
page.on_route_change = route_change
page.go(page.route)
page.update()
ft.app(main)
代码BottomSheet
(views.stake_sheet)
def stake_sheet(stake_before, stake_after, go_stake):
return ft.BottomSheet(
ft.Column(
[
ft.Text(f'Вы успешно застейкали -1 монет и получили -2 монет!'),
ft.ElevatedButton(
'Собрать монеты',
bgcolor='#0089d4',
color='white',
on_click=go_stake,
style=ft.ButtonStyle(
shape=ft.RoundedRectangleBorder(radius=10)
)
)
]
)
)
page.clean
+ (一切似乎都很好,但所有页面小部件都在范围内,并且只有第一页可见
(BottomSheet 愚蠢地丢失了._。)
甚至不要问为什么我需要钱包page.open
page.open
page.clean