Unsolved Quick Controls 2 styles extension
-
For example, consider Universal style.
This is good, but not enough.
Now, I have several problems with customization of my app:- Ligth and dark themes looks good, but I want to change more colors than just accent, foreground and background. I see in source code that now in universal style exist 18 different colors, but they read only. It mean that in code I can use them in read only context, and next code:
Universal.altHighColor: Universal.Red
will return next error:
Invalid property assignment: "altHighColor" is a read-only property
- Ok, may be I can extend universal themes and add own, where I will can redefine read only colors? No. I don't see real interfaces for this even in private classes.
- Once way that I see now is a copy paste Universal style, change colors to my needs and create own style, using private qt classes. Only for changing predefined colors.
Really, styling in quick controls 2 looks very good as idea, but implementation now is very limited. May be I just don't understand something? How I can change predefined colors or add new theme for universal style?
-
It is all about the balance between performance and flexibility. The more configurable style attributes we add, the more information every single style node needs to store and inherit/promote, instead of being able to pick values straight from a shared table of pre-defined constants. The implementation is "very limited", as you say, by design. It is a deliberate choice to support a level of customization that keeps the performance optimal yet satisfies 90% of the users. For the 10% that need to go beyond that level, custom delegates, that allow you to do pretty much anything you want, is the recommended way to go.
-
Ok, may be this have sense, but what I can do now, if I satisfied with universal controls but want just to change colors? Is exist way excluding copy pasting universal style?