[Development] Qt 6: Assigning QPalette to ApplicationWindow.palette no longer supported?
Fabian Kosmale
fabian.kosmale at qt.io
Mon Aug 24 14:23:34 CEST 2020
Hi Marcel,
as Vitaly mentioned, palette was never explicitly documented to be a QPalette.
We're currently discussing internally whether we still want to support binding a QPalette property
to a palette QML property in Qt 6; and if yes, how to do it.
We'll provide an update (+ justification) once we've come to a decision.
What should work (both in 5.x and 6.0) is to use https://doc.qt.io/qt-5/qguiapplication.html#setPalette
Does that functionality cover your use case?
Fabian
--
Fabian Kosmale
Software Engineer
The Qt Company GmbH
Erich-Thilo-Str. 10
D-12489 Berlin
fabian.kosmale at qt.io
+49 1638686070
http://qt.io
Geschäftsführer: Mika Pälsi,
Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht
Charlottenburg, HRB 144331 B
--
________________________________
Von: Development <development-bounces at qt-project.org> im Auftrag von Marcel Krems <marcel.k.dev at gmail.com>
Gesendet: Freitag, 21. August 2020 22:24
An: development at qt-project.org <development at qt-project.org>
Betreff: [Development] Qt 6: Assigning QPalette to ApplicationWindow.palette no longer supported?
Hi,
I recently implemented a theming system for my Qt Quick application.
With Qt 6 I'm getting an error: "Unable to assign QPalette to
QQuickPalette*"
This was changed in the following commits:
- https://codereview.qt-project.org/c/qt/qtquickcontrols2/+/270097
- https://codereview.qt-project.org/c/qt/qtdeclarative/+/270092
My Theme class looks like this:
class Theme : public QObject
{
Q_OBJECT
Q_PROPERTY(QPalette palette MEMBER _palette NOTIFY themeChanged)
...
};
In my main.qml I'm setting the palette with:
ApplicationWindow {
palette: Theme.palette
...
}
My question is:
Is my use case no longer supported or is this a regression?
And if not, what is the proposed way to do it? Preferrably compatible
with Qt 5.15 and Qt 6.
Do I have to set every single colorrole of the palette separately?
E.g.
ApplicationWindow {
palette {
active {
buttonText: Theme.buttonText
button: Theme.button
...
}
disabled {
buttonText: Theme.buttonTextDisabled
button: Theme.buttonDisabld
}
}
}
Kind regards,
Marcel
_______________________________________________
Development mailing list
Development at qt-project.org
https://lists.qt-project.org/listinfo/development
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20200824/51ba15e2/attachment-0001.html>
More information about the Development
mailing list