Ich stehe hier fest und komme nicht mehr weiter. Irgendwie habe ich das Grundprinzip auch, glaube ich, falsch verstanden. Mein Ziel ist es, eine Anzeige zu machen mit mehreren Buttons und mit Klick auf diese gelangt man in ein anderes Fenster.
Das Widget in der Klasse mainPage wird korrekt erstellt, sprich mit meinem gewünschten Inhalt. Ebenso wird das mainWindow korrekt erstellt, beides kann ich mit show() anzeigen. Was muss ich nun tun, damit mein Widget im mainWindow angezeigt wird?
Danke für euere Hilfe!
Folgendes habe ich bis jetzt erstellt (relevante Dateien & teilweise gekürzt):
main.cpp
Code: Alles auswählen
#include <QApplication>
#include <QtCore>
#include "gui.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Gui gui;
return a.exec();
}
Code: Alles auswählen
#include "gui.h"
#include "pages.h"
Gui::Gui(){
QMainWindow *mainWindow = new QMainWindow;
this->mainLayout = new QVBoxLayout;
mainWindow->setFixedSize(800,600);
mainLayout->addWidget(new mainPage);
mainWindow->setLayout(mainLayout);
mainWindow->show();
}
Code: Alles auswählen
#include "pages.h"
mainPage::mainPage(QWidget *parent):QWidget(parent){
qWarning("start in mainPage::");
this->startWidget = new QWidget;
this->startLayout = new QVBoxLayout;
this->startLayout->setAlignment(Qt::AlignHCenter);
QLabel* lblTitle = new QLabel("Titel");
QPushButton* btnGame = new QPushButton("");
btnGame->setFixedSize(380,80);
connect(btnGame, SIGNAL(clicked()), this, SLOT(onGame()));
QPushButton* btnHighscore = new QPushButton("");
btnHighscore->setCursor(QCursor(Qt::PointingHandCursor));
connect(btnHighscore, SIGNAL(clicked()), this, SLOT(onHighscore()));
QSpacerItem* verticalSpacer = new QSpacerItem(10, 10, QSizePolicy::Fixed, QSizePolicy::Fixed);
this->startLayout->addWidget(lblTitle);
this->startLayout->addItem(verticalSpacer);
this->startLayout->addWidget(btnGame);
this->startLayout->addWidget(btnHighscore);
this->startLayout->addItem(verticalSpacer);
this->startWidget->setLayout(startLayout);
}
Code: Alles auswählen
#ifndef GUI_H
#define GUI_H
#include <QtGui>
class Gui:public QMainWindow{
Q_OBJECT
public:
Gui();
~Gui();
private:
QWidget* mainWindow;
QVBoxLayout* mainLayout;
};
#endif // GUI_H
Code: Alles auswählen
#ifndef PAGES_H
#define PAGES_H
#include <QtGui>
#include <QWidget>
class mainPage:public QWidget{
Q_OBJECT
public:
mainPage(QWidget *parent = 0);
~mainPage();
private:
QVBoxLayout* mainLayout;
QVBoxLayout* startLayout;
QWidget* startWidget;
public slots:
void onGame();
void onHighscore();
void onRules();
void onAbout();
void onQuit();
};
#endif // PAGES_H