Stylesheet Problem (einfaches Beispiel)
Verfasst: 22. Februar 2010 11:52
Hallo,
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:
Es gibt die von QWidget abgeleitete Klasse MyWidget. Im ctor wird ein stylesheet gesetzt.
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?
Wer selber mal ein bisschen testen möchte, im Anhang liegt das Bsp bei.
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();
}