2016-10-10 6 views
1

Ich erstelle eine Kivy/Python-App, die einen formatierten Bericht generiert. Der Bericht selbst wird mit Pandas-Datenrahmen erstellt und dann nach Excel geschrieben. Ich möchte der Benutzeroberfläche etwas hinzufügen, mit dem Benutzer benutzerdefinierte Sortierungen auf den Bericht anwenden können.Sortierbare Kivy-Liste

Wenn der Datenrahmen beispielsweise ein "Category" -Feld mit den Werten "Cat1", "Cat2", "Cat3" enthält, möchte ich ein Feature hinzufügen, mit dem ein Benutzer diese Kategorien in einem benutzerdefinierten organisieren kann Auftrag.

Was ich mir vorstelle ist eine Liste von Elementen auf der Kivy UI, die ein Benutzer durch Ziehen und Ablegen der Elemente neu sortieren könnte? Oder auch nur eine einfache Liste mit einem Auf-/Ab-Pfeil würde ausreichen. Ich glaube, das wird im Allgemeinen eine Listbox genannt, aber ich kann das Widget in Kivy nicht finden. Derzeit verwalte ich die Sortierung nur mit einem externen Mapping-Dokument, aber ich möchte dies stattdessen in die App-Funktionalität integrieren.

Hinweis: Ich bin nicht auf der Suche nach detaillierten Code oder irgendetwas - nur einige Ideen, was Module/Widgets/Ansatz hier funktionieren könnte.

Alle Gedanken würden sehr geschätzt werden!

Dank

Antwort

0

Speichern Sie die Daten in einem list property.

Erstellen Sie eine Tabelle aus einem Rasterlayout, auf dem Sie den Inhalt der data Liste anzeigen möchten. Die Kopfzeilen der Tabelle würden Schaltflächen sein, die in der Liste sortieren. Bei jeder Änderung der Liste wird ein Rückruf on_data ausgelöst. Verwenden Sie den Callback, um die Tabellenzeilen neu zu zeichnen.