И еще про переезд с Qt 5.4 на 5.12

Продолжение опупеи, добавление в этому и этому.

Начиная с Qt версии 5.6 там изменилась поддержка HiDPI-дисплеев, внутренний фактор масштабирования может быть дробным (а не 1/2 как для поддержки Mac Retina). Масштабирование может быть автоматическим (стандартно это выключено), но что хуже всего - оно управляется, в том числе, переменными окружения.

Дальше происходит интересное: пользователь (по рекомендации из интернета) или инсталлятор какой-то Qt-based софтины ставит одну из вышеописанных переменных в глобальное окружение и... все Qt-based приложения разъезжаются (если, к примеру, они такой подлости не ожидали). На моей рабочей станции таковыми оказались Qt Creator (ну, понятно), VLC, RenderDoc и Adobe Photodownloader (из комплекта бриджа).

Ежели значит не хочется разъезжаться, дарю вам кусок кода, который надо до создания QApplication выполнить:

        qunsetenv("QT_AUTO_SCREEN_SCALE_FACTOR");
        qunsetenv("QT_SCALE_FACTOR");
        qunsetenv("QT_SCREEN_SCALE_FACTORS");
        qunsetenv("QT_ENABLE_HIGHDPI_SCALING");
        qunsetenv("QT_SCALE_FACTOR_ROUNDING_POLICY");
Проблема, на самом деле, не ограничивается только HiDPI, Qt-программы могут/будут конфликтовать, если в глобальное окружение понаписали всякой другой гадости, типа путей к плагинам.

 

Add new comment