Russian Qt Forum
Апрель 18, 2024, 03:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: И снова DPI. Поддержка масштабирования интерфейса  (Прочитано 9490 раз)
Torvald
Самовар
**
Offline Offline

Сообщений: 118


Просмотр профиля
« : Май 31, 2017, 16:07 »

Пробовал использовать QT_DEVICE_PIXEL_RATIO со значением auto - не работает на windows 10 (на ХР норм).

Пробовал QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true) - работает плохо. Во-первых, если увеличение в системе стоит 125%, то интерфейс не масштабируется. Если 150% - то масштабируется в два раза. То есть окно может пребывать только в двух состояниях - либо х1, либо х2.
Во-вторых, эта фича появилась в Qt 5.6, а начиная с этой версии на некоторых компьютерах в редких случаях возникает баг: https://bugreports.qt.io/browse/QTBUG-56367
его не исправили вплоть до Qt 5.8 (5.9 только сегодня релизнулся, еще не смотрел - нет проблемного пк). Этот баг проявляется много где (гуи драйвера видеокарты, calibre) и много у кого, в т.ч. и у меня. Поэтому я использую стабильную Qt 5.5.1

Пробовал вручную ставить QT_SCALE_FACTOR - работает идеально, то, что нужно. Но для того, чтобы узнать какое значение ставить, нужно запросить devicePixelRatio, а это можно сделать только после инициализации QApplication, но QT_SCALE_FACTOR нужно ставить до инициализации QApplication...

Короче вопрос: как узнать devicePixelRatio (то, что выставляет пользователь в настройках винды - 100%, 125% и пр) до инициализации QApplication?

Ну либо подскажите как еще можно скейлить гуи

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.