Treeview mit Mausklick auf Label aktrivieren

Fragen zu Tkinter.
Antworten
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

Hallo,
ich habe eine Suchanfrage in meinem Treeview installiert.
Bei Suche eines bestimmten Begriffs, wird dieser angezeigt (highlight) und fokussiert (focus).
Problem:
Jetzt suche ich nach einer Möglichkeit, den Treeview direkt schon beim Klick auf das Suchlabel zu aktivieren,
so daß man direkt mit den Keyboard-Tasten Up/Down den Treeview ausgeben (highlighten und fokussieren) kann.
Ich hoffe, das ist so verständlich..? :)
Wie ist das möglich?
LG Christian
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Verstaendlich finde ich das jetzt nicht. Wenn du ein Suchfeld im Fokus hast, kann technisch bedingt kein anderes Widget im Fokus sein. Unabhaengig davon kannst du aber natuerlich die Selektion des Treeview zu jedem Zeitpunkt aendern. Auch auf Tastendruck hin. Beantwortet das deine Frage?
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

Naja, im ersten Schritt klicke ich das Suchlabel an, gebe dann den Suchtext ein und bestätige (mit Return vorwärts, Strg-Return rückwärts) und
bekomme dann immer einen Fokus auf den im Treeview gefundenen Text (d.h. die betreffende Zeile wird makiert und fokussiert).
Läuft alles.
Jetzt möchte ich aber noch die Buttons Up and Down einbinden, so daß ich eine Suche starte, und direkt mit Up und Down den Treeview weiter anzeigen kann,
ohne erst mit der Maus den Treeview zu aktivieren.
Z.Z. gibt er mir nach Suche immer nur das gefundene Item aus, er soll aber bei "up" ein Item hoch gehen und bei "down" eben eins nach unten springen.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na dann kannst du zB einen Event-Filter auf dem Suchfeld installieren, und in dem auf die Tastendruecke hoeren. Und dann eben das gewuenschte Item anspringen.
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

Das gewünschte Item ist ja für Down das nächstgelegene Item unterhalb des Gefundenen Items bwz. für Up das nächstgelegene oberhalb des gefundenen Items.
Also sozusagen:
Down = gefundenes Item -1
Up = gefundenes Item +1
Wie kann man das mit dem Event umsetzen, ohne per Mausklick vorher den Treeview zu aktivieren (denn das funktioniert auch schon soweit).
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Verstehe ich nicht. Angeblich hast du doch code der ein bestimmtes Item schon highlited. Wenn du das Item kennst, worin besteht denn jetzt das Problem das Item davor/danach zu hightliten?
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

ich hab es schon gelöst :)

Code: Alles auswählen

self.tree_master.focus_set()
hat mein problem gelöst.
danke dir aber trotzdem :):):)
Antworten