无法设置Flet下拉框的值
我无法设置下拉菜单的值。我正在使用flet
网站上的一个示例。设置值的唯一方法是往下拉菜单里添加一些选项。但是我想要的是在没有选择任何选项的情况下直接设置值。谢谢!
import flet as ft
def main(page: ft.Page):
def find_option(option_name):
for option in d.options:
if option_name == option.key:
return option
return None
def add_clicked(e):
d.value = "test"
page.update()
def delete_clicked(e):
option = find_option(d.value)
if option != None:
d.options.remove(option)
# d.value = None
page.update()
d = ft.Dropdown()
option_textbox = ft.TextField(hint_text="Enter item name")
add = ft.ElevatedButton("Add", on_click=add_clicked)
delete = ft.OutlinedButton("Delete selected", on_click=delete_clicked)
page.padding = 50
page.add(d, ft.Row(controls=[option_textbox, add, delete]))
ft.app(target=main)
1 个回答
0
flet.Dropdown 需要在 'options' 列表中包含 flet.dropdown.Option,且这些选项的值要和你想要设置的值一致。
这里有个例子:
import flet as ft
def main(page: ft.Page):
def find_option(option_name):
for option in d.options:
if option_name == option.key:
return option
return None
def add_clicked(e):
d.value = "test"
page.update()
def delete_clicked(e):
option = find_option(d.value)
if option != None:
d.options.remove(option)
# d.value = None
page.update()
d = ft.Dropdown(options=[ft.dropdown.Option("test")]) # simple change
option_textbox = ft.TextField(hint_text="Enter item name")
add = ft.ElevatedButton("Add", on_click=add_clicked)
delete = ft.OutlinedButton("Delete selected", on_click=delete_clicked)
page.padding = 50
page.add(d, ft.Row(controls=[option_textbox, add, delete]))
ft.app(target=main)