Как динамически вставлять новые вкладки нажатием кнопки задачи ввода?Python

Программы на Python
Ответить
Anonymous
 Как динамически вставлять новые вкладки нажатием кнопки задачи ввода?

Сообщение Anonymous »

Я разрабатываю приложение Shiny на Python и в настоящее время пытаюсь найти способ динамического создания новых вкладок нажатием либо кнопки ввода задачи, либо вкладки под названием «Новый». Я исследовал использование ui.insert_ui и достиг определенного уровня желаемого эффекта за счет динамического добавления панелей в мой ui.navset_tab, но при нажатии на новую вкладку вкладка зависает, и я не могу переключитесь на новую вкладку.
Есть ли более оптимальный способ создания динамических вкладок, а также их удаления?
Мой код описан ниже:< /p>

Код: Выделить всё

from shiny import App, Inputs, Outputs, Session, reactive, render, ui
from shinywidgets import output_widget, render_widget

app_ui = ui.page_fluid(
ui.navset_tab(
ui.nav_panel("Home",
ui.card(
ui.card_header("Overview"),
ui.p("This is the landing page"),
ui.input_task_button(id = "create_tab",
label = "Create New Tab",
width = "400px",
type = "success"),
)
),
id = "shiny_tabs"
)
)

def server(input, output, session):

# Set reactive values
tabs_created = reactive.value(1)

# Generate tabs
@reactive.Effect
@reactive.event(input.create_tab)
def _():
tab_title = f"View {tabs_created.get()}"
ui.insert_ui(
ui.navset_tab(
ui.nav_panel(tab_title,
ui.modal("This will include the accordion content")
)
),
selector = "#shiny_tabs",
where = "beforeEnd"
)

tabs_created.set(tabs_created.get() + 1)

app = App(app_ui, server)
Я также разместил этот вопрос в posit-dev/py-shiny#1510.


Подробнее здесь: https://stackoverflow.com/questions/787 ... ask-button
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»