Pyblish UI issue on new computer

Hey long time no post. I’ve been happily using pyblish-lite on a mac for my personal work for several years now. I just got a microsoft surface laptop, my first windows machine I’ve owned in about 10 years. I’ve installed python 3, and then PyQt5 and pyblish using pip. However when I run qml or lite I get this scrunching up of the interface:

I’m wondering if it’s having to do with the bonkers resolution of the screen, I’ve come across scaling issues in other apps as I’ve been installing them. Anyone encountered this or know if there’s a fix?

I was also wondering, since if I run pyblish_qml or pyblish_lite, it looks pretty much identical, is pyblish smart about falling back on lite if qml doesn’t work? In that case is it possible that the qml version isn’t even working for me?

Hi @morganloomis, long time indeed!

That looks like a scaling issue. From where are you running this? And how are you running it?

Here’s what I’m seeing with 150% scale.

rez env pyblish_lite-0.8.4 python-3.7 pyqt5-5.12 -- python -m pyblish_lite --debug

rez env pyblish_qml-1.9.12 python-3.7 pyqt5-5.12 -- python -m pyblish_qml --demo

You can confirm by editing the scaling in your display settings.

As you can see, scaling isn’t well handled by either QML or Lite. QML doesn’t bother scaling its elements, resulting in tiny graphics, whereas Lite scales some parts (e.g. text) and not others (e.g. layout). It’s mostly an oversight; there hasn’t been enough demand for HDPi screens yet, and for what it’s worth even Maya (2018 and below) has trouble with it in various parts.

That said, a PR would be most welcome, as it’s clear HDPi is going to become more prevalent over time. What you can do till then is enable “HDPi scaling override” which will force Maya and friends to ignore scaling, and duplicate pixels instead. It’s stable and backwards compatible, but of course not as smooth-looking on HDPi screens.

This is how I’m using most DCC software on HDPi screens, at least until they catch up, and Pyblish Lite will follow suite. For QML, you can enable the override on the Python interpreter you use to launch it and it should respect it as well.

Thanks man, that’ll do for now.