Ich habe eine GUI in Python 3 und tkinter, die eine große ttk.Treeview
hat. Ich habe Methoden zur Zeilenauswahl definiert (ein Klick) und öffne ein erweitertes Info-Panel (Doppelklick). Ich muss sicherstellen, dass der Treeview-Status nach einem Doppelklick für die nächsten ein oder zwei Sekunden nicht durch einen weiteren Klick geändert wird. Ist es möglich, Treeview-Mausbindungen zu deaktivieren, etwa was wir mit Buttons machen?In Python3/tkinter gibt es eine Möglichkeit, die Klicks in einem Treeview-Widget vorübergehend nicht mehr zu akzeptieren?
2
A
Antwort
0
Mit ein wenig mehr Forschung konnte ich mir eine Lösung einfallen lassen. Ich habe gerade eine leere Methode erstellt, die aufgerufen wird, wenn das Baum-Widget inaktiv sein soll. So können wir so etwas zu „unbind“ alle Mausereignisse verwenden und neu binden sie ein paar Sekunden später, je nach Bedarf:
def nothing(self, *event):
""" # Hacking moment: A function that does nothing, for those times you need it...
"""
pass
def bind_tree(self):
""" # Bind mouse and keyboard events to their respective functions or methods...
"""
self.tree.bind('<<TreeviewSelect>>', self.selectItem_popup)
self.tree.bind('<Double-1>', self.show_details)
self.tree.bind("<Button-2>", self.popupMenu)
self.tree.bind("<Button-3>", self.popupMenu)
def unbind_tree(self):
""" # Unbind all mouse and keyboard events, by binding them to an empty method...
"""
self.tree.bind('<<TreeviewSelect>>', self.nothing)
self.tree.bind('<Double-1>', self.nothing)
self.tree.bind("<Button-2>", self.nothing)
self.tree.bind("<Button-3>", self.nothing)
Dann wird in dem Rest des Codes, Wir müssen nur anrufen bind_tree()
und unbind_tree()
nach Bedarf.
Verwandte Themen
- 1. Gibt es eine Möglichkeit, in einem Stylesheet zu verlinken, in dem die Erweiterung nicht .css ist?
- 2. Gibt es eine Möglichkeit, den Rückgängig-Verlauf für eine RichTextBox zu gruppieren oder vorübergehend zu deaktivieren?
- 3. Gibt es eine Möglichkeit, alle Klickbindungen auf einem Element mithilfe von jQuery vorübergehend zu überschreiben?
- 4. Gibt es eine Möglichkeit, Variablen in einem Array zu deklarieren?
- 5. In SQL-Server gibt es eine Möglichkeit, den Befehl 'use database' eine Variable zu akzeptieren
- 6. Gibt es eine Möglichkeit, @AdditionalCriteria in EclipseLink zu deaktivieren?
- 7. Gibt es eine Möglichkeit, Textumbruch in einem Textfeld zu erkennen?
- 8. Gibt es eine Möglichkeit, keine DMARC-Berichte mehr zu empfangen?
- 9. Gibt es eine Möglichkeit, die Parserzeit in PHP zu messen?
- 10. Gibt es eine Möglichkeit, die Bildlaufleisten in IE8 zu verbergen?
- 11. Gibt es eine Möglichkeit, Typinkompatibilität in Typoskript zu ignorieren?
- 12. Gibt es eine Möglichkeit, die Variablen, die in einem RegEx.Replace verwendet wurden, in .NET zu verwenden?
- 13. Gibt es eine Möglichkeit, die Variablen, die in einem RegEx.Replace verwendet wurden, in .NET zu verwenden?
- 14. Gibt es eine Möglichkeit, die Aufgabenliste in VSCode zu aktualisieren?
- 15. Gibt es eine Möglichkeit, die Objektpermanenz in memcached zu garantieren?
- 16. gibt es eine Möglichkeit, die Formulardaten in PHP zu löschen?
- 17. gibt es eine Möglichkeit, die Videolänge in PHP zu bekommen?
- 18. Gibt es eine Möglichkeit, die Jacobi in Matlab zu bewerten?
- 19. Gibt es eine Möglichkeit, die zugewiesene Aufgabe außerhalb der Outlook-Desktopanwendung zu akzeptieren oder abzulehnen?
- 20. Gibt es eine Möglichkeit, eine Variable in LaTeX zu definieren?
- 21. In Swing, gibt es eine Möglichkeit, das Neuanlegen einer JComponent-Containment-Hierarchie vorübergehend einzufrieren?
- 22. CATextLayer NSBackGroundColorAttributeName gibt es eine Möglichkeit, es funktioniert zu lassen?
- 23. Gibt es eine Möglichkeit, die Spaltenliste in einem SELECT * von #Temp_Table in SSMS zu erweitern?
- 24. Gibt es eine Möglichkeit, mehr als eine .NET-Assembly in einer DLL zu packen?
- 25. Gibt es eine Möglichkeit, Mehrfacheinspritzung zu propagieren?
- 26. Gibt es eine Möglichkeit, eine Klasseneigenschaft in Python zu erstellen?
- 27. Gibt es eine Möglichkeit, Projekte in Eclipse zu importieren?
- 28. Gibt es eine Möglichkeit, Text in einem TextView programmatisch auszuwählen?
- 29. Gibt es eine Möglichkeit, auf einem Home Widget zu animieren?
- 30. Gibt es eine Möglichkeit, SqlBulkCopy zu verwenden, ohne die Daten in eine DataTable zu konvertieren?