Сортируемый список Kivy

#python #pandas #kivy

#python #панды #kivy

Вопрос:

Я создаю приложение Kivy / Python, которое генерирует форматированный отчет. Сам отчет генерируется с помощью фреймов данных pandas, а затем записывается в Excel. Я хотел бы добавить что-то в пользовательский интерфейс, что позволило бы пользователям применять пользовательскую сортировку к отчету.

Так, например, если в фрейме данных есть поле «Категория» со значениями «Cat1», «Cat2», «Cat3», я хотел бы добавить функцию, с помощью которой пользователь мог бы упорядочивать эти категории в произвольном порядке.

Я представляю себе список элементов в пользовательском интерфейсе Kivy, который пользователь мог бы отсортировать, перетаскивая элементы? Или даже простого списка со стрелкой вверх / вниз будет достаточно. Я полагаю, что это обычно называется listbox, но, похоже, я не могу найти этот виджет в Kivy. В настоящее время я управляю сортировкой, просто имея внешний документ сопоставления, но вместо этого я хотел бы интегрировать это в функциональность приложения.

Примечание: я не ищу подробный код или что-то еще — просто некоторые идеи о том, какие модули / виджеты / подход могут здесь работать.

Любые мысли будут с благодарностью!

Спасибо

Ответ №1:

Храните данные внутри свойства списка.

Создайте таблицу из макета сетки, в которой вы хотели бы отобразить содержимое data списка. Заголовками таблицы будут кнопки, которые выполняют некоторую сортировку в списке. Каждый раз, когда список изменяется, on_data будет запускаться обратный вызов. Используйте обратный вызов для перерисовки строк таблицы.