Von QWidget erben: Anderes verhalten?
-
Hallo zusammen
Ich habe jetzt nach einem halben Jahr Pause wieder angefangen, mit Qt zu arbeiten. Jetzt habe ich allerdings folgendes Problem:
- Ich habe ein QMainWindow, erstelle ein QWidget und setze das auch als centralWidget
- Ich habe eine eigene Klasse, die von QWidget erbt. Eine Instanz davon möchte ich nun dem centralWidget hinzufügen. Leider wird da nichts angezeigt - ich bin wirklich ein bisschen am verzeifeln.
- Wenn ich das QWidget "einfach so" erstelle (also keine eigene Klasse und erben), dann funktioniert alles wie gewünscht.Mein Widget (ich habe jetzt einfach mal eine Hintergrundfarbe gesetzt)
#include <QWidget> class StartScreen : public QWidget { Q_OBJECT public: explicit StartScreen(QWidget *parent = 0); };
#include "startscreen.h" StartScreen::StartScreen(QWidget *parent) : QWidget(parent) { this->setStyleSheet("background-color: rgb(0, 255, 0);"); // gruen }
Mein Main Window
GameWindow::GameWindow(QWidget *parent) : QMainWindow(parent) { resize(600, 400); mainWidget = new QWidget(); // mein centralWidget mainWidget->setStyleSheet("background-color: rgb(255, 0, 0);"); // rot startScreen = new StartScreen(mainWidget); // das nicht funktionierende widget startScreen->setGeometry(QRect(0, 0, 300, 300)); QWidget* tmp = new QWidget(mainWidget); // dies hier funktioniert tmp->setGeometry(QRect(100, 100, 30, 30)); tmp->setStyleSheet("background-color: rgb(0, 0, 255);"); // blau this->setCentralWidget(mainWidget); }
Resultat: Ein "rotes Fenster" mit einem blauen Viereckchen... Vom grünen Widget fehlt leider jede Spur.
Ideen? So kompliziert kann das doch gar nicht sein
QWidget ist schon zum erben gedacht, oder?Gruss & vielen Dank
-