wie kann man denn bitte für den jeweiligen Button in einem Tkinter Grid abfragen, welche (bzw ob die "rechte") Maustaste gedrückt wurde.
Anmerkung: "linke Taste" scheint ja Standard zu sein...und funktioniert
mit "bind" konnte ich auch die "rechte" Taste abfragen, ABER das geht ja nur für das gesamte Widget ...ich würde aber auch wissen muessen, welcher Button gedrückt wurde...
Danke
Manfred
rechte Maustaste für button in einem Tkinter Grid abfragen
möglich....und "wie bitte"?
momentan frage ich wie folgt auf Mausklick ab (x=jeweiliger Button in einem Grid):
button[x].config(command=partial(funktion_mausklick, button[x]))
damit wird mir zwar "der Mausklick eines bestimmten Buttons" gemeldet....ich weiss aber jetzt nicht, wie ich hier eventuell abfragen kann, ob es die "linke oder rechte oder .." Maustaste wäre, die geklickt wurde...
Manfred
momentan frage ich wie folgt auf Mausklick ab (x=jeweiliger Button in einem Grid):
button[x].config(command=partial(funktion_mausklick, button[x]))
damit wird mir zwar "der Mausklick eines bestimmten Buttons" gemeldet....ich weiss aber jetzt nicht, wie ich hier eventuell abfragen kann, ob es die "linke oder rechte oder .." Maustaste wäre, die geklickt wurde...
Manfred
Danke für Eure Antwort....
wahrscheinlich habe ich mich schlecht ausgedrueckt
nochmals:
1) momentan frage ich wie folgt auf Mausklick ab (x=jeweiliger Button in einem Grid):
button[x].config(command=partial(funktion_mausklick, button[x]))
damit wird mir zwar "der Mausklick eines bestimmten Buttons" gemeldet....ich weiss aber jetzt nicht, wie ich hier eventuell abfragen kann, ob es die "linke oder rechte oder .." Maustaste wäre, die geklickt wurde...
2) entsprechend hatte ich für JEDEN der Buttons dann ergänzt:
button[x].bind("<Button-3>", function_rightclick)
damit wird bei Betätigung der rechten Maustaste dann auch "function_rightclick" ausgeführt....dort gibt es aber (für mich ersichtlich zumindest) KEINE Info, bei welchen der Buttons eben der Rechtsklick gemacht wurde (zB: sieht die von Tkinter in den function_rightclick mitgegebene Variable immer so aus: <ButtonPress event state=Mod1 num=3 x=45 y=30> ….wobei sich die Positionsangaben x,y immer auf die Klickposition "innerhalb des jeweiligen Buttons" beziehen...und somit zur Auswertung auch nicht wirklich dienen)
3) wie kann man also bitte herausfinden, bei "WELCHEM Button" die rechte Maustaste geklickt wurde??
Besten Dank im Voraus
Manfred
wahrscheinlich habe ich mich schlecht ausgedrueckt
nochmals:
1) momentan frage ich wie folgt auf Mausklick ab (x=jeweiliger Button in einem Grid):
button[x].config(command=partial(funktion_mausklick, button[x]))
damit wird mir zwar "der Mausklick eines bestimmten Buttons" gemeldet....ich weiss aber jetzt nicht, wie ich hier eventuell abfragen kann, ob es die "linke oder rechte oder .." Maustaste wäre, die geklickt wurde...
2) entsprechend hatte ich für JEDEN der Buttons dann ergänzt:
button[x].bind("<Button-3>", function_rightclick)
damit wird bei Betätigung der rechten Maustaste dann auch "function_rightclick" ausgeführt....dort gibt es aber (für mich ersichtlich zumindest) KEINE Info, bei welchen der Buttons eben der Rechtsklick gemacht wurde (zB: sieht die von Tkinter in den function_rightclick mitgegebene Variable immer so aus: <ButtonPress event state=Mod1 num=3 x=45 y=30> ….wobei sich die Positionsangaben x,y immer auf die Klickposition "innerhalb des jeweiligen Buttons" beziehen...und somit zur Auswertung auch nicht wirklich dienen)
3) wie kann man also bitte herausfinden, bei "WELCHEM Button" die rechte Maustaste geklickt wurde??
Besten Dank im Voraus
Manfred
Wie das geht, hast Du doch schon bei 1) gezeigt. Mit partial kannst Du weitere Parameter mit festem Wert übergeben. x ist übrigens ein ganz schlechter Name für einen Index und mit Indizes sollte man eh nicht arbeiten, wenn man auch direkt mit den Button-Instanzen arbeiten könnte. button ist ein ganz schlechter Name für eine Liste mit mehreren Buttons. Lisren werden üblicherweise mit der Mehrzahlform benannt.
@Sirius3:
".. Wie das geht, hast Du doch schon bei 1) gezeigt. Mit partial kannst Du weitere Parameter mit festem Wert übergeben..."
wie sollte dann bitte die Befehlszeile lauten, dass ich mit "partial und bind" auch die "Art der Maustaste herausfinde"?
Listennamen were ich übrigens anpassen...danke für den Hinweis
Manfred
".. Wie das geht, hast Du doch schon bei 1) gezeigt. Mit partial kannst Du weitere Parameter mit festem Wert übergeben..."
wie sollte dann bitte die Befehlszeile lauten, dass ich mit "partial und bind" auch die "Art der Maustaste herausfinde"?
Listennamen were ich übrigens anpassen...danke für den Hinweis
Manfred
@Sirius3:
es ist korrekt, dass ich mit "partial" (siehe 1 oben) den jeweiligen Button genau herausfinden kann....
und dass ich mit "bind" (siehe 2 oben) herausfinden kann, ob zB die rechte Maustaste geklickt wurde.
mit meinen bescheidenen Tkinter-Kenntnissen, kann ich eben jeder dieser Funktionen SEPARAT aufrufen...ich schaffe es aber leider bis jetzt nicht, diese 2 Funktionen miteinander "zu verknüpfen" (es läuft bei mir nur "ENTWEDER die eine"...."ODER die andere" Funktion ab)
irgendwie fehlt mir das Verständnis, wie ich zB "bind" so in "command=partial..." einbaue, dass ich eben beide Informationen GLEICHZEITIG habe.
Deswegen meine Bitte, wie solch eine Befehlszeile lauten könnte...
Danke
Manfred
es ist korrekt, dass ich mit "partial" (siehe 1 oben) den jeweiligen Button genau herausfinden kann....
und dass ich mit "bind" (siehe 2 oben) herausfinden kann, ob zB die rechte Maustaste geklickt wurde.
mit meinen bescheidenen Tkinter-Kenntnissen, kann ich eben jeder dieser Funktionen SEPARAT aufrufen...ich schaffe es aber leider bis jetzt nicht, diese 2 Funktionen miteinander "zu verknüpfen" (es läuft bei mir nur "ENTWEDER die eine"...."ODER die andere" Funktion ab)
irgendwie fehlt mir das Verständnis, wie ich zB "bind" so in "command=partial..." einbaue, dass ich eben beide Informationen GLEICHZEITIG habe.
Deswegen meine Bitte, wie solch eine Befehlszeile lauten könnte...
Danke
Manfred
Ich weiß nicht, wie ich da noch helfen kann, wenn die Grundlagen zu Funktionen fehlen.
Wenn Du die zweite Maustaste benutzen willst, kannst Du nicht command benutzen, sondern mußt bind benutzen, daher weiß ich nicht, was Du in command einbauen willst.
Wenn Du die zweite Maustaste benutzen willst, kannst Du nicht command benutzen, sondern mußt bind benutzen, daher weiß ich nicht, was Du in command einbauen willst.
@Sirius3:
ich "muss" nicht unbedingt "command benutzen"....
meine ursprüngliche Frage lautet: wie kann man denn bitte für den jeweiligen Button in einem Tkinter Grid abfragen, welche (bzw ob die "rechte") Maustaste gedrückt wurde.
Anmerkung: "linke Taste" scheint ja Standard zu sein...und funktioniert
mit "bind" konnte ich auch die "rechte" Taste abfragen, ABER das geht ja nur für das gesamte Widget ...ich würde aber auch wissen muessen, WELCHER Button gedrückt wurde...
trotzdem natürlich: Danke für Deine Bemühungen!
@Alle: kann mir bitte jemand anders sagen, wie das gehen würde?
Danke
Manfred
ich "muss" nicht unbedingt "command benutzen"....
meine ursprüngliche Frage lautet: wie kann man denn bitte für den jeweiligen Button in einem Tkinter Grid abfragen, welche (bzw ob die "rechte") Maustaste gedrückt wurde.
Anmerkung: "linke Taste" scheint ja Standard zu sein...und funktioniert
mit "bind" konnte ich auch die "rechte" Taste abfragen, ABER das geht ja nur für das gesamte Widget ...ich würde aber auch wissen muessen, WELCHER Button gedrückt wurde...
trotzdem natürlich: Danke für Deine Bemühungen!
@Alle: kann mir bitte jemand anders sagen, wie das gehen würde?
Danke
Manfred
Es hilft nichts, wenn Du Deine Frage wiederholst. Die Antwort bleibt die selbe. Wenn Du verstanden hast, wie die Funktion bei command die Information bekommt, welcher Button gedrückt wurde, kannst Du das selbe Prinzip auch bei bind anwenden. Dazu mußt Du aber erst verstehen, wie partial funktioniert. Das geht am besten, wenn Du das selbst an einfachen Beispielen ausprobierst.
@msmn: du hast diese zwei Zeilen Code selbst praesentiert:
Eine davon kann den Button bestimmen. Eine nicht. Wieso hast du die erste Zeile so geschrieben? Was macht die anders? Warum sollte das bei dem bind nicht funktionieren?
Code: Alles auswählen
button[x].config(command=partial(funktion_mausklick, button[x]))
button[x].bind("<Button-3>", function_rightclick)