Я пытаюсь добавить новую кнопку для выбора каталога после выбора каталога perv (чтобы выбрать несколько каталогов).
Эту кнопку выбора каталога необходимо добавлять каждый раз после того, как я выбираю каталог. Как мне это сделать?
Редактировать: Прикрепляю сюда свой код:
# Method to create a file picker
self.images_dir = FileChooseRow(
"Images Folder",
MetaFileType.DIRECTORY,
pick_files_dialogs[0],
fn_validate_submit,
)
def button_clicked(e):
self.add_images_dir.data += 1
self.row = ft.Row()
self.row.update()
# create button to add another file picker on screen on run time
self.add_images_dir = ft.IconButton(
icon = "add", tooltip = "Add", height=40, on_click=button_clicked, data=0
)
self.row = ft.Row()
Мне нужно что-то вроде этого: https://jsfiddle.net/SP8de/
Привет, только что добавил свой код @UpAndAdam






Я думаю, это то, что вы хотите:
Сначала я бы создал переменную для хранения добавленных кнопок и строки, элементы управления которой установлены в массив. Затем вы можете добавить в него свою основную кнопку. Например.
main_btn = ft.ElevatedButton(text = "Chose directory")
added_btns = [main_btn]
r = ft.Row(added_btns)
page.add(r)
Далее сделайте обратный вызов для главной кнопки
def add_button(e: ft.ControlEvent):
def dir_btn_pressed(e: ft.ControlEvent):
picker.ask_directory(initial_directory = "...")
new_btn = ft.TextButton(text = "Chose Directory")
new_btn.on_click=dir_btn_pressed
added_buttons.append(new_btn)
page.update()
main_btn.onclick = add_button
Теперь реализуем средство выбора каталогов:
def dir_picked(e: ft.FilePickerResultEvent):
print(f"Picked {e.path}")
picker = ft.FilePicker(on_result=dir_picked)
Возможно, вам придется исправить странную опечатку :)
пожалуйста, предоставьте код, который у вас есть на данный момент. Или попытайтесь кратко объяснить, чего вы пытаетесь достичь. Похоже, вам нужен виджет выбора каталога, в котором вы можете выбирать несколько каталогов?