Glade und gtkmm

Post Reply
Message
Author
Benj

Glade und gtkmm

#1 Post 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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Benj

#3 Post 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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply