das folgende Programm öffnet ein Fenster. Im oberen Label kann man reinklicken (Mausknopf 1), dabei kann man eine Modifier-Taste gedrückt halten.
Wenn ich auf meinem Rechner (Windows 10, Python 3.9.1) das Programm benutze, die ALT-Taste drücke (egal ob links oder rechts) und ins obere Feld klicke, erhalte ich seltsame Werte für event.state. State ist mit 0x20000 weit außerhalb des ansonsten üblichen Bereiches.
Ist das normal? Mein Fehler? Habt ihr andere Ausgaben? Andere Modifier verhalten sich "normal". Die Windows-Taste wird als Modifier nicht erkannt.
Code: Alles auswählen
import tkinter as tk
from tkinter import ttk
class Application:
def __init__(self):
self.root = tk.Tk()
self.root.geometry('300x200')
self.create_widgets()
def create_widgets(self):
self.label = ttk.Label(self.root, text='Ereignisfeld', relief=tk.SUNKEN )
self.label.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES)
self.label.bind('<Button-1>', self.onClick)
self.labelInfoVar = tk.StringVar(value='Beschreibung')
self.labelInfo = ttk.Label(self.root, textvariable=self.labelInfoVar, relief=tk.SUNKEN )
self.labelInfo.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES)
self.quit = ttk.Button(self.root, text="Quit", command=self.root.destroy)
self.quit.pack(side=tk.BOTTOM)
def onClick(self, event):
state = event.state;
self.labelInfoVar.set("onClick\n Event=%s\n State=%s" %(event, hex(state)))
app = Application()
app.root.mainloop()
etwa Zeile 250
Viele Grüße