Seite 1 von 1

Qt Designer - Signal-Slot-Verbindung zwischen Forms u. a.

Verfasst: 21. Februar 2007 11:48
von Sym
Hallo,

ich arbeite mich ein wenig in den Designer ein. Bisher habe ich meist alle größeren Dinge von Hand gebaut.

1. Ich habe nun ein QMainWindow erzeugt. Dies hat eine QAction About. Wenn ich darauf klicke, soll sie eine andere Form öffnen (ein Dialog). Doch anscheinend kann ich nur Signals und Slots innerhalb einer Form definieren. Also muss ich das selbst in die Hand nehmen?

2. Mein QMainWindow soll nun ein Menü haben. Durch die verschiedenen QActions ändert sich das CentralWidget, da ein neuer Inhalt gewählt wird. Doch wie bringe ich das dem Designer bei?

Gruß Lars

Verfasst: 21. Februar 2007 13:01
von dontinelli
Hallo Lars

1. Du must das Signal von QAction mit einem beliebigen Slot in deiner MainWin-Klasse verbinden und dann im Slot den Dialog öffnen.

Code: Alles auswählen

connect(About,SIGNAL(triggered()),this,SLOT(open_Dialog()))
...
void MainWin::open_Dialog()
{
    QDialog Dialog();
    Dialog.exec();
}
2. Auch das must du über Signal/Slot machen. Definiere einen Slot (z.B. change_CW() und passe darin deine Benutzerfläche nach gutdünken an. und dann must du nur noch das Signal und den Slot verbinden.

Im Designer für 3.x kann man Slots auch schon im Designer definieren und verbinden, ab 4.x musst du halt coden...

LG
Don Tinelli

Verfasst: 21. Februar 2007 13:10
von Sym
Hi,

danke für Deine Antwort. Ich hatte halt gehofft, dass ich sowas auch mit dem Designer hinbekommen könnte.

Naja, wird schon. ;)

Verfasst: 21. Februar 2007 15:15
von dontinelli
Ich habe mich zuerst auch umgewöhnen müssen, da ich ebenfalls dem Designer verfallen war. Mitlerweile bin ich aber soweit, dass ich das neue System gar nicht so schlecht finde oder manchmal sogar alles im Code schreibe. Ist alles reine Gewöhnungssache...
Cheers
DonTinelli

Verfasst: 21. Februar 2007 17:21
von Sym
Ja, coden kann ich auch. ;) Aber ich will mir jetzt die Arbeit ein wenig mehr abnehmen lassen.