[Interest] [Qt Labs Controls 5.6] Customization recommendations
Nurmi J-P
jpnurmi at theqtcompany.com
Fri Mar 11 17:30:12 CET 2016
Hi,
> On 11 Mar 2016, at 16:42, Ronan Jouchet <ronan.jouchet at cadensimaging.com> wrote:
>
>> On 2016-03-10 19:09, Nikita Krupenko wrote:
>> 2016-03-10 17:19 GMT+02:00 Ronan Jouchet <ronan.jouchet at cadensimaging.com>:
>>> -> That sounds nice for users wanting total control over the complete
>>> style. But suppose instead I'm mostly happy with Material and
>>> only want to *override some attributes*, much like I would do
>>> with CSS in a webapp, and as opposed to wholly defining control
>>> sub-items {label, background, ...}.
>>>
>>> Is there a way to do that? Following the documentation sentence
>>> quoted above, I'd just copy the whole `material` folder and start
>>> tweaking, but then I'd have to merge my tweaks with upstream
>>> changes brought by each Qt release.
>>> Correct? Is this the workflow you have in mind?
>>
>> You don't need to copy anything, you can just use button with Material
>> theme and override it's background or label. You can also tweak some
>> properties, like font or padding, that is used for creating and
>> positioning default background and label.
>
> Hi. Two things:
>
> 1. Sure, that works for a one-time, isolated tweak. But I'm talking
> about tweaking *all* instances of a control. Thus the need to
> "overlay" or fork my own variant of Material.
>
> 2. Even in the case of a one-time change, remains the question of the
> granularity of tweaks. Suppose I have a checkbox for which I want a
> green-colored label. Is there a way to only override the color
> property like I could with CSS?
>
> I am totally able to wholly re-define the `label` property:
> label: Text {
> // dozens of attributes I don't want to touch but have to
> // copy-paste from the reference Material implementation
> color: "green"
> }
>
> Whereas I would like to simply
> // fails and logs `Cannot assign to non-existent property "color"`
> label.color: "green"
>
> So in this case I could `property alias labelColor: label.color`
> and later on set `labelColor: "green"`
> ... but the alias would have to be in the source CheckBox
> implementation, and I'm back at modifying Material, which was what
> I wanted to avoid initially.
>
> Am I missing something? More generally I created
> https://bugreports.qt.io/browse/QTBUG-51785
>
>> Also, note, that Qt Labs Controls is a TP in 5.6. The label already
>> became contentItem in 5.7.
>
> Yup, no problem with that, the documentation and "labs" namespace are pretty clear that the API isn't stable.
>
>>> 3. With upcoming desktop support in mind, would it be interesting to
>>> add a third customization axis (alongside theme & accent) called
>>> "density" that would adjust paddings like the [GMAIL] feature does?
>>
>> There is opened BR: https://bugreports.qt.io/browse/QTBUG-51109
>
> Thanks! Keeping an eye on this one.
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
Sorry for a late and short reply. Busy times... :) This forum thread describes the main reason why things are the way they are: http://forum.qt.io/topic/64198/qt-labs-controls-cusomization/4
--
J-P Nurmi
More information about the Interest
mailing list