Page 1 of 1

Glade und gtkmm

Posted: 22. Dec 2006 23:30
by Benj
Hallo,

ich möchte eine Oberfläche für ein Programm mit Glade erstellen und gtkmm-Code erzeugen lassen. Soweit ist das auch kein Problem, aber wie kann ich in einem Signalhandler auf Widgets zugreifen, z.B. nach Klick auf einen Button einen Text in einem Textfeld setzen?

Kann mir da jemand helfen? Vielen Dank im Voraus.

Grüße Benj

Posted: 23. Dec 2006 12:58
by Janka
In Signalhandlern macht man am besten gar nichts außer Variablen zu setzen. Du musst also die Hauptschleife (die X-Eventloop vermutlich) eine Variable überwachen lassen und dann dort die eigentliche Aktion ausführen.

Um welches Signal geht es überhaupt?

Janka

Posted: 25. Dec 2006 17:28
by Benj
Hallo,

zuerst mal Danke für die schnelle Antwort.

Ich glaube, ich habe meine Frage etwas ungenau formuliert. Es geht nicht so sehr um Signalbehandlung. Das Problem ist folgendes: Glade erzeugt eine Klasse window1_glade, in der die Fensterelemente erzeugt werden. Von dieser Klasse ist die Klasse window1 abgeleitet, die die Signalhandler und andere evtl. selbst geschriebene Methoden beinhaltet. Wenn ich jetzt in einer Methode dieser Klasse z.B. Text in einem Textfeld eintragen möchte, kann ich nicht direkt darauf zugreifen, da das Handle für das Element in window1_glade private ist und daher in window1 nicht sichtbar.
Meine Frage ist: Wie bekommen ich ein Handle auf dieses Textfeld (oder ein anderes Widget) im Fenster.

Benj

Posted: 25. Dec 2006 18:10
by Janka
Vergiss erstmal den Terminus "Signal", der ist unter Unix anders belegt. Du meinst Events.

Ohne Glade genau zu kennen, erkenne ich zwei prinzipielle Möglichkeiten:

1. Die Klasse, deren Fenster du verändern willst hat eine "configure"-Methode. Dann nutze diese, anstatt direkt auf Klassenvariablen zuzugreifen.
2. Ist diese Methode nicht vorhanden, leite die Klasse ab und füge eine solche Methode hinzu.

Janka