Ich möchte mein Sub Widget mit QLinerGradient zu putzen. Ich habe ui mit QtDesigner erstellt.QPalette funktioniert nicht auf Sub QWidget
Aber ich kann nicht dieses Widget auffrischen, indem Sie diesen Code verwenden. (Ui.colorBarWidget normal ist QWidget von QtDesigner erstellt wurde.)
QPalette palette;
QLinearGradient gradient(ui.colorBarWidget->rect().topLeft(),ui.colorBarWidget->rect().topRight());
gradient.setColorAt(0, Qt::blue);
gradient.setColorAt(0.2, Qt::green);
gradient.setColorAt(0.4, Qt::red);
gradient.setColorAt(0.6, Qt::yellow);
gradient.setColorAt(1, Qt::cyan);
palette.setBrush(QPalette::Base, gradient);
ui.colorBarWidget->setPalette(palette);
Neben dieser Code allein im Stand arbeitet QWidget application.This ist seine Ausgabe:
Aber ich kann gleiche Sache in meinem Design nicht tun. Ich kann dies mit styleSheet
ui.colorBarWidget->setStyleSheet("background-color: qlineargradient(x1:0 y1:0, x2:0 y2:1, stop:0 blue, stop:1 red)"); /* works */
tun, aber warum kann ich das nicht mit QPalette tun.
Vielen Dank im Voraus.
Ich habe versucht Base, Hintergrund, Fenster ... aber immer noch nicht tun können. Auch ui.colorBarWidget ist normal QWidget wurde von QtDesigner erstellt. – Wilmort