[GTK] Echte Events von synthetischen unterscheiden

OP #2901131
Lesenswert?

Hallo Zusammen,

ich habe in meiner Anwendung einen GtkToggleButton. Dieser kann 
einerseits vom Benutzer betätigt werden, aber auch vom Programm durch 
set_active(). Nun möchte ich in der mit dem 'toggled'-Signal verknüpften 
Methode feststellen, woher das Ereignis kam (Auf den Knopf gedrückt, 
oder set_active()). Weiß hier jemand wie das geht?

MfG,
Lukas
#2901422
Lesenswert?

Sorry, ich hatte das nur noch in vager Erinnerung.
Workarounds gibt auch ohne spezielle Signale.
Wenn Du den Button vom Programm aus änderst, kannst Du ein Flag setzen.
Wenn dann das Signal/Callback von gtk_main() aufgerufen wird, prüft Dein 
Handler zunächst das Flag. Wenn es gesetzt ist, wird es gelöscht und 
keine weitere Aktion ausgeführt.
Gast #3475099
Lesenswert?

Lukas K. schrieb:
> Im event-handler ruft man Gtk.get_current_event() auf. Wenn jemand
> "programmatisch" am Widget gewackelt hat, gibt die Funktion None zurück,
> sonst den Event.

Ich glaube ich hatte damals deine Anfrage gesehen, konnte aber nicht 
helfen.
Dass sich jemand mit der Lösung des Problems zurückmeldet ist ja hier 
die große Ausnahme, üblich ist wohl eher den Thread schnell löschen zu 
lassen, damit nicht noch ein anderer von der Antwort profitiert. ;-)

Na ich hoffe Du hast jetzt nicht die vollen 13 Monate an dem Problem 
geknobelt -- auf der GTK-Mailingliste sollte es ja dann doch eine 
Antwort gegeben haben. Wenn nicht, dann sollte ich vielleicht doch mal 
über Qt nachdenken...
OP #3475461
Lesenswert?

Stefan Salewski schrieb:
> Lukas K. schrieb:
>> Im event-handler ruft man Gtk.get_current_event() auf. Wenn jemand
>> "programmatisch" am Widget gewackelt hat, gibt die Funktion None zurück,
>> sonst den Event.
>
> Ich glaube ich hatte damals deine Anfrage gesehen, konnte aber nicht
> helfen.
> Dass sich jemand mit der Lösung des Problems zurückmeldet ist ja hier
> die große Ausnahme, üblich ist wohl eher den Thread schnell löschen zu
> lassen, damit nicht noch ein anderer von der Antwort profitiert. ;-)
>
> Na ich hoffe Du hast jetzt nicht die vollen 13 Monate an dem Problem
> geknobelt -- auf der GTK-Mailingliste sollte es ja dann doch eine
> Antwort gegeben haben. Wenn nicht, dann sollte ich vielleicht doch mal
> über Qt nachdenken...

Keine Bange, gab noch andere Dinge dazwischen ;) Bin auch mehr zufällig 
darauf gestoßen, als ich herausfinden wollte, wie man feststellt ob zu 
einem event noch shift/ctrl gedrückt war. War dann damals wohl doch 
nicht dringlich genug, sich auf die Gtk-Mailingliste zu subscriben... An 
Qt konnte mich der Qt-Designer oder wie das Qt-Äquivalent zu Glade auch 
immer heißt nicht recht überzeugen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren