Fix font/widget scaling on UHD displays
|Assignee:||Joel Palmius||% Done:|
|Target version:||MakeHuman 1.1.2|
Running MH on an asus zenbook is somewhat painful since the MH qt theme doesn't obey the windows font/widget scaling that one has to set for ultra-high-density displays. Switching to the "native" theme makes most of the UI work, but icon buttons are still not properly scaled. And the native theme is ugly.
Since the native theme mostly works, I'm assuming this is mainly a minor glitch in the custom MH qt theme.
As an alternative, here's how blender solves it: http://blender.stackexchange.com/questions/27016/make-blender-usable-on-high-resolution-screen
But I don't know if pyqt supports that.
#1 Updated by Jonas Hauquier over 2 years ago
Blender implements it's own GUI, so can do its own DPI scaling. We use Qt, so we kind of depend on Qt to do the scaling for us, before the drawcalls are made.
That it works with the default OS theme but not with custom theming is probably a quirk of Qt, where some hacks were put in place to make it work more or less with default theming, but I don't think the whole theming engine is adapted to it.
Either that, or the theme needs to be converted from using pixel dimensions to using em units.
In any case, I've looked into dpi scaling with (py)qt in the past, and especially with pyqt it seemed very painful to actually fix this.
I think the best approach is to port to Qt5 in some future release of MH, Qt5 which I think comes with full support for DPI scaling.
We might consider switching to pyside wrappers while we're at it, and python 3 (but that is an entirely different issue).
We also need to switch all the icons we are using to svg vector graphics, so that they are no longer fixed at a certain resolution.
Still the themes will have to be checked for compatibility. I do not have such a high resolution screen, so working on the theme for me will be very painful (if not impossible). So I will have to leave this task to someone else (unless someone sponsors me a high dpi subpixel screen).
Also available in: Atom