Ich benutze eine tkinter ttk GUI, um Daten über Dateien in einem Server zu präsentieren. Die Informationen werden in einer ttk-Baumansicht gespeichert und als Tabelle dargestellt. Das Ziel besteht darin, dass der Benutzer in der Lage ist, diese Zeilen zu filtern, so dass Funktionen nur für diejenigen ausgeführt werden können, die in der Baumansicht sichtbar sind, nachdem der Benutzer das Filtern durchgeführt hat.tkinter ttk iterating durch treeview
Problem ist, kann ich einen Weg nicht finden, durch die Treeview zu iterieren. Ich muss etwas tun können:
def filterTreeview(treeviewToFilter, tvColumn, stringVariable):
for tvRow in treeviewToFilter:
if tvRow.getValue(tvColumn) != stringVariable:
tvRow.detach()
Wie kann ich das erreichen?
Als eine sekundäre Frage, weiß jemand eine bessere Möglichkeit, dies zu tun? Gibt es einen Grund, eine Treeview statt eines einfachen Arrays zu verwenden? Wie wäre es, den Filter für ein Datenfeld zu erstellen und dann die Baumansichtstabelle von Grund auf neu zu erstellen?
ich viel Zeit Tutorials Lesen für Informationen verbracht habe gesucht, aber ich habe die Art und Weise zu verstehen, zu verwenden, um Daten in einem treeview bisher nicht erfolgreich gewesen:
python ttk treeview sort numbers http://www.tkdocs.com/tutorial/tree.html
https://fossies.org/dox/Python-3.5.2/classtkinter_1_1ttk_1_1Treeview.html
Haben Sie versucht, die dokumentierte Methode [get_children] (https://docs.python.org/dev/library/tkinter.ttk.html#tkinter.ttk.Treeview.get_children) zu verwenden? –
Ich habe es vorher untersucht, aber ich war nicht in der Lage, den Schritt zu machen, es zu benutzen, um über die Treeview zu iterieren. Gibt es eine Liste von was genau? Sind das Treeview-IDs, mit denen ich die Baumansicht analysieren könnte? – user3535074
Die Dokumentation, auf die ich Sie hingewiesen habe, sagt, dass sie "eine Liste von Kindern" zurückgibt. Genauer gesagt, gibt es die ID jedes Kindes zurück. Viele der Treeview-Methoden verwenden diese ID als Argument. –