Ist es möglich, die Verschiebung und das Mausrad zu binden? Ich hätte es so gedacht, aber ich mache etwas falsch. No-modifier an der linken Maustaste (
) und das Scroll -Rad stieg auf ((
).
Code: Select all
import tkinter as tk
root = tk.Tk()
label = tk.Label(root)
label.grid(row=0, column=0, sticky='nsew')
label.config(text='Mouse Wheel with Modifiers')
def show_event(event, desc=''):
label.config(text=desc + ' ' + str(event))
print(desc + ' ' + str(event))
label.bind('', lambda event, desc='Shift+Click': show_event(event, desc))
label.bind('', lambda event, desc='Control+Click': show_event(event, desc))
label.bind('', lambda event, desc='Alt+Click': show_event(event, desc))
label.bind('', lambda event, desc='[]+Click': show_event(event, desc))
label.bind('', lambda event, desc='Shift+Wheel': show_event(event, desc))
label.bind('', lambda event, desc='Control+Wheel': show_event(event, desc))
label.bind('', lambda event, desc='Alt+Wheel': show_event(event, desc))
label.bind('', lambda event, desc='[]+Wheel': show_event(event, desc))
root.mainloop()
< /code>
Wenn ich die Aktionen durchführe, damit ich < /p>
bekommeShift+Click
Control+Click
Alt+Click
[]+Click
### []+Wheel
Control+Wheel
Alt+Wheel
[]+Wheel
wobei die mit ### vorangestellte Zeile mit dem Rad aufgedreht wurde. Ich hätte erwartet, dass Shift+Wheel hier sehen würde. Bindung, aber ich kann es nicht sehen. Es ist eindeutig möglich, ein Mausereignis an die Verschiebung von zu binden und auch andere Modifikatoren an das Mausrad zu binden. BR /> Testen auf einer anderen Maschine (Ubuntu 24.04, Python 3.12, TKinter 8.6) zeigt das richtige Ergebnis (dh < /code>). Dies funktioniert also zumindest in einigen Konfigurationen auf Ubuntu. Python 3.13 auf dem Problemautomaten hat das ursprüngliche Problem. als Buttonpressereignis mit Status 0x2010, Taste5 und Status 0x2014, Taste 5 . (Ich habe beim Testen in die andere Richtung geprüft, sorry).
jedoch , Shift+Scroll kam als Status 0x2011, Taste 7 . : Es ist Ubuntu 20.04, das als VM (VirtualBox 7.0.6 mit Gastzusammenhältern) auf einem Mac OS -Host (11.7.1) ausgeführt wird. Ich frage mich, ob Shift+Scroll (was auf einem Mac in der Übersetzung verstümmelt wird. ist ein (9-jähriger, noch offener) Bericht, dass horizontales Scrollen auf einem Linux-Gast-/Mac-OS-Host mit VirtualBox nicht funktioniert. > oder . Ich kann an und binden, aber diese fangen nichts an.