irgendwie möchte er an meinen Frame zwar das <Enter> Event aber nicht das <Button-1> Event binden. Binde ich es an das Label in dem Frame, so geht es. Aber wenn ich auch das Enter-Event an ein Frame binden kann, dann doch sicher auch das Button-1-Event?
Code: Alles auswählen
class MainWindow():
def __init__(self, myDict):
self.window = tk.Tk()
mainFrame = tk.Frame(master = self.window)
mainFrame.pack()
doc = ""
for id, sl in myDict.items():
slFrame = tk.Frame(master = mainFrame)
slFrame.pack(side='top', pady = 2, padx = 2)
slFrame.bind("<Button-1>", lambda event, a=sl: self.left_click_Frame(event, a)) #geht nicht
#slFrame.bind("<Button-1>", self.left_click_Frame_noArgs) #geht nicht
slFrame.bind("<Enter>", lambda event, a=sl, b=doc: self.selectLines(a,b)) #geht!
slFrame.focus_set()
lbl_sl_id = tk.Label(slFrame, text=str(id), width=4)
lbl_sl_id.pack(side='left')
#lbl_sl_id.bind("<Button-1>", self.left_click_label) #geht!
#lbl_sl_id.bind("<Button-1>", lambda event, a=sl: self.left_click_label_with_args(event, a)) #geht!
def left_click_label(self, event):
print("left_click_label")
def left_click_label_with_args(self, event, sl):
print("left_click_label_with_args")
def left_click_Frame(self, event, sl):
print("left_click_Frame")
def selectLines(self, sl, doc):
print("selectLines")
def left_click_Frame_noArgs(self):
print("left_click_Frame_noArgs")
def show(self):
self.window.mainloop()
Gruß Tobias