- 
    Bug 
- 
    Resolution: Won't Do
- 
     Not Evaluated 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
 
-         

