2016-06-30 14 views
0

Ich bin mit einem Problem konfrontiert, kann ich nicht die Zeit von einem Qt-Fenster ändern. Ich kann den Hintergrund meines MainWindow und aller anderen Widgets ändern, aber wenn ich versuche, das in einem anderen Fenster zu tun, ändert es sich nicht. Ich benutze das gleiche Bild für alle Widgets und Windows, so dass der Ort nicht das Problem ist.Ich kann alle qt Wingets Hintergrund außer Fenster ändern

Ich benutze qt Designer mit Stylesheet und Visual Studio 2013. Eine Sache, die seltsam ist, ist, dass der MainWindow Hintergrund im QtDesigner nicht sichtbar ist, bis ich alles kompiliere und ausführe, aber in den anderen Fenstern ist der Hintergrund sichtbar, aber wann Ich kompiliere ist gonne.

Ich versuche es bereits nach Code, aber das gleiche Ergebnis.

Irgendwelche Hilfe?

+0

Spezifizieren Sie Stylesheets für jedes Fenster einzeln? Wenn nur MainWindow Stylesheet hat - werden andere Fenster als Children von MainWindow erstellt (wie 'passwordDialog = new MyDialog (this);')? –

+0

Ich verwende Stylesheets für jedes Fenster separat. – superpichon

+0

Wenn ich die Hintergrundfarbe ändern funktioniert es aber nicht mit einem Bild ... humm – superpichon

Antwort

0

in einer anderen ähnlichen Fragen sucht ich dies gefunden: QtStylesheet

Die Antwort auf mein Problem ist die zweite Antwort von dieser Stelle. Das Problem war, dass ich das paintEvent() neu implementieren musste, weil das Widget dann nur die Hintergrund-, Hintergrund-Clip- und Hintergrund-Ursprung-Eigenschaften unterstützt.

void CustomWidget::paintEvent(QPaintEvent *) 
{ 
    QStyleOption opt; 
    opt.init(this); 
    QPainter p(this); 
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); 
} 

Der Code wurde aus der Antwort in dem anderen Beitrag übernommen.