Ich habe per QtCreator mit integriertem QtDesigner eine UI aufgesetzt, die ein QstackedWidget enthält. Sein Name ist stackedWidget und es enthält unter anderem die Seiten stackedBrick und stackedHome. Nun habe ich die automatisch generierte MainWindow Klasse folgendermassen angepasst (.cpp):
Code: Alles auswählen
HMainWindow::HMainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::HMainWindow)
{
ui->setupUi(this);
connect(ui->menuQuit,SIGNAL(triggered()), qApp, SLOT(quit()));
connect(ui->bcHome,SIGNAL(clicked()),ui->stackedWidget,SLOT(setCurrentWidget(ui->stackedHome)));
ui->stackedWidget->setCurrentWidget(ui->stackedBrick);
}Allerdings funktioniert die zweite connect-Zeile nicht. Beim Klicken des Buttons bcHome geschieht nichts, egal ob ich stackedHome oder stackedBrick aufrufen will. Schreibe ich als SLOT hingegen hide() rein (immer noch beim stackedWidget), wird dieses korrekt versteckt, sobald der Knopf gedückt wird. Übrigens schlägt QtCreator per Autocomplete setCurrentWidget auch als SLOT vor.
Somit habe ich einen funktionierenden connect-Befehl und einen funktionierenden setCurrentWidget Befehl. Aber sobald ich setCurrentWidget als SLOT implementiere, geschieht gar nichts mehr?!
Kann mir jemand helfen?
P.S. Die zweitletzte Zeile ist von QtCreator rot unterstrichen. Es ist laut ihm eine geschlossene Klammer zu viel am Ende. Aber wenn ich die entferne, klagt der Compiler über eine Klammer zu wenig.
lg,
Kalsan