-
Bug
-
Resolution: Won't Do
-
Not Evaluated
-
None
-
6.2.3
-
None
In Qt 6.2.3, QPalette::setBrush does not mark a color role as "modified" if the set brush corresponds to what the palette had, before.
This can cause that in a nested widget scenario, the child widget fails to set its individual palette.
#include <QApplication>
#include <QPalette>
#include <QVBoxLayout>
#include <QWidget>
void setThemePalette()
{
QPalette themePalette;
themePalette.setColor(QPalette::Window, Qt::red);
QApplication::setPalette(themePalette);
}
int main(int argc, char *argv[])
{
setThemePalette();
QApplication a(argc, argv);
/*
Expected result:
+--------------------+
| w1 (Qt::green) |
| +--------------+ |
| | w2 (Qt::red) | |
| +--------------+ |
| |
+--------------------+
*/
QWidget w1;
QPalette p1;
p1.setColor(QPalette::Window, Qt::green);
w1.setPalette(p1);
auto w2 = new QWidget;
QPalette p2;
p2.setColor(QPalette::Window, Qt::red);
w2->setPalette(p2);
w2->setAutoFillBackground(true);
w2->setMinimumSize(100, 100);
auto layout = new QVBoxLayout(&w1);
layout->addWidget(w2);
w1.show();
return a.exec();
}
- relates to
-
QTCREATORBUG-26981 Welcome screen: QPalette issue after Qt 6.2.2 -> 6.2.3 upgrade
-
- Closed
-
- resulted in
-
QTCREATORBUG-28844 Switch Theme to dark but partially invalid
-
- Closed
-