ich hab ein Problem mit dem Setzen von einem Stylesheet. Dieses Problem hab ich in einem einfachen Beispiel nachgebildet. Schaut es euch mal an. Erklärung folgt im Anschluss:
Code: Alles auswählen
#include <QtGui/QApplication>
#include "window.h"
#include "mywidget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Window w;
MyWidget w;
w.show();
return a.exec();
}
Code: Alles auswählen
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QtGui/QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
};
#endif // MYWIDGET_HCode: Alles auswählen
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
setStyleSheet("MyWidget {background-color: blue;}");
}
MyWidget::~MyWidget()
{
}
Code: Alles auswählen
#ifndef WINDOW_H
#define WINDOW_H
#include <QWidget>
class Window : public QWidget
{
Q_OBJECT
public:
Window(QWidget *parent = 0);
};
#endif // WINDOW_HCode: Alles auswählen
#include "window.h"
#include "mywidget.h"
Window::Window(QWidget *parent) :
QWidget(parent)
{
MyWidget *my1 = new MyWidget(this);
my1->setGeometry(10,10,100,100);
}
Wenn ich nun in der main Funktion direkt ein MyWidget erzeuge und es mit show() anzeigen lasse, erscheint auch korrekt ein blau hinterlegtes Widget.
Jetzt zum Problem:
Ich erzeuge in der main nicht ein MyWidget, sondern ein Window Objekt (simples Widget), so wird das darin erzeugte MyWidget (siehe ctor von Window) nicht blau hinterlegt?! Hat jemand ne Ahnung?
Code: Alles auswählen
#include <QtGui/QApplication>
#include "window.h"
#include "mywidget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Window w; // create a Window object
// MyWidget w;
w.show();
return a.exec();
}