[Interest] pre-processing for Qt widget stylesheet
Konstantin Tokarev
annulen at yandex.ru
Fri Aug 14 11:23:55 CEST 2015
14.08.2015, 10:03, "Hamish Moffatt" <hamish at risingsoftware.com>:
> On 12/08/15 17:01, Alejandro Exojo wrote:
>> The problem is that Sass is more than a template engine. Is a language crafted
>> for generating CSS. It has functions for colors, understands selector
>> inheritance, and a lot more. See for example:
>>
>> http://sassymothereffingtextshadow.com/
>>
>> OK, probably not the best example, since very rarely you make use of loops in
>> Sass code. The next is something not easily achievable with a normal template
>> language, and is one of the most interesting use cases:
>>
>> http://sass-lang.com/guide#topic-3
>>
>> The only solution I can think of, unless libsass has hooks for extension
>> points for your problems, is pre and post process the Sass/CSS code. Try to
>> see if there is some way that you can "tag" the elements with the invalid
>> pseudo-classes (a diferent pseudo-class or an ad-hoc class that you use for
>> that), and use some regular expression to do replacements.
>
> I found a one line change to the libsass sources to allow the
> "!selected" selector, and a workaround for the rgba issue, so now I have
> libsass working on my application.
>
> This makes maintaining a complex style sheet much easier: variables for
> colours, much easier to read descriptions of various states etc. Next
> I'll start making use of maths and constants to take my screen dpi into
> effect.
>
> With regard to Konstantin's suggestion to pre-compile the stylesheet for
> different DPI settings, that doesn't really work - Windows allows the
> user to choose any custom font scaling they want. 100% ("96 dpi"), 125%
> ("120 dpi") and 150% ("144 dpi") are just the presets.
This does not imply you should adapt UI of your application to all intermediate
values between these presets, but YMMV.
If your UI look depends so much on DPI you may better use your own font rendering
to get reproducible pixel sizes of glyphs.
--
Regards,
Konstantin
More information about the Interest
mailing list