[Interest] Changes in Qt 5.6 on Windows HiDPI

Adam Light aclight at gmail.com
Fri Nov 13 00:49:28 CET 2015


We've just started testing our application using Qt 5.6 (self built from
Nov. 10 git checkout).

It appears that the behavior of QDesktopWidget::logicalDpiX (and Y) has
changed since Qt 5.5.

We bought a Dell Inspiron 15 laptop with a High DPI display. If I open
Control Panel, choose Display, and click the "set a custom scaling level"
link, the scaling factor was set to 250% out of the box. When we run our
application and call QApplication::desktop()->logicalDpiX(), the value
returned is 80. Using Qt 5.5, that would have returned 240 (2.5 * 96).

Is this change intentional? This change breaks a lot of the drawing code in
our application, and so I'd like to know whether we need to adapt our
application or if I should report this as a bug.

Additionally, I notice that if I call
QApplication::desktop()->devicePixelRatioF(), the returned value is 3. I
would expect that 2.5 is returned.

I see the note at https://doc-snapshots.qt.io/qt5-5.6/highdpi.html that
says:
Note: Non-integer scale factors may cause significant scaling/painting
artifacts.

That's unfortunate, as I suspect that non-integer scale factors will be
relatively common. I can change the scale factor to 200%, but when I do
that everything is a little too small, and I'm relatively young and have
good eyesight. Requiring our users to use integer scale factors is
something we'd rather not do.

Thanks
Adam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20151112/d8b3aa02/attachment.html>


More information about the Interest mailing list