[Development] Updated high-DPI support for Qt 5.14

Kai Pastor, DG0YT dg0yt at darc.de
Wed Sep 25 20:50:45 CEST 2019


Am 25.09.19 um 20:08 schrieb Elvis Stansvik:
> Den ons 25 sep. 2019 kl 18:34 skrev Matthew Woehlke 
> <mwoehlke.floss at gmail.com>:
>> On 25/09/2019 08.54, Morten Sørvig wrote:
>>> I see two differences between setting the DPI vs a factor:
>>>
>>> - You set one value per screen (DPI) instead of two (DPI & factor)
>>>
>>> - Qt can compute the factor, according to policy set by the 
>>> application (as mentioned above)
>>>
>>> [...]
>>>
>>> If possible, I’d like us to move away from relying on setting
>>> environment variables, and/or switch to specifying per-screen DPI
>>> instead of a scale factor.
>> Has anyone considered whether or not this is *user* friendly?
>>
>> As a user, I don't want to have to know/measure/compute the DPI of my
>> display device. I just want to make "stuff" bigger or smaller. I *also*
>> don't necessarily want the same physical size of "stuff" across devices.
>> On my phone, I may want smaller "stuff", because my phone is usually
>> quite close to my eyes. On my 4K 75" television, I may want larger
>> "stuff" because I'm sitting 10' to 15' away. Maybe I have really good
>> (or really bad) eyesight.
>>
>> Fiddling with "fake DPI" as a way of adjusting things has always felt
>> like a hack. Setting display scaling "just makes sense". From a user
>> perspective, it's obvious that scaling is also going to affect icons,
>> style margins, frame thicknesses... basically, *everything*. DPI,
>> historically, only affected font sizes and *maybe* some margins. If the
>> only knob I have is DPI, how do I know (or control) what size my icons
>> will be? How am I supposed to guess what will be the relation between
>> "virtual" pixels and physical pixels, keeping in mind that I, as a user,
>> am trying to achieve a particular value for that?
>>
>> There are a few instances, such as when representing physical objects,
>> when it makes sense to try to achieve a particular physical size. In
>> almost *every other case*, which is to say *always* for interface
>> elements, there is no fixed correlation between "desirable" size and
>> actual physical size, and anyone that designs their application
>> otherwise is doing their users a disservice.
> Agree 100%. There's no reason for a user to have to fiddle around with
> a strange number like 192, 96, or whatever.
>
> As a user I want 2 things:
>
> - Sane defaults and good autodetection, so a hopefully good automatic
> scale factor that makes things reasonably sized given the physical
> dimensions of the output device and its intended viewing distance
> - ..but if I want to tune the size for whatever reason, I want to do
> that in percentages of what it is *now*.
>
> It's easy enough for most folks to judge what % of the current size
> that would get them where they want to be. It's not friendly to
> present them with say 192 DPI, and when they want say 80% of that,
> leave them to do the math. Or even asking them to relate the DPI to
> physical inches (though I guess the DPI we're talking about here is
> some intermediate virtual one?).
>
> Large parts of the world did not grow up with inches. I know I'd have
> a hard time to hold up my fingers to show an inch...
>
> Elvis
>
> PS. Nevermind that in the KDE version I'm using, it's actually not
> possible to tweak the scale factor per screen under X11 in the kscreen
> KCM, so I have to manually set QT_SCREEN_SCALE_FACTORS if I want to
> dabble with that. But if I do want to dabble, I want to dabble in
> percent. DS.

There is nothing wrong with preferring simplicity for the most common 
case. But please provide a clear way how to get accurate sizes when 
desired, e.g. for 1:1 drawing or for print preview. With "clear" 
including uniform cross-platform.

Kai





More information about the Development mailing list