Приложения, использующие фиксированные координаты и размеры, будут выглядеть небольшими по высоким разрешениям DPI. Хотя даже при использовании макетов существуют некоторые проблемы, касающиеся размеров и полей элементов и шрифтов. К счастью, поддержка high-DPI-дисплеев с Qt 5.4 связана с большим количеством исправлений с высоким уровнем DPI .
Приложение в Windows может принимать один из следующих уровней " DPI Awareness "(из документации Qt):
blockquote>
- DPI Unaware: этот уровень был введен в Windows-Vista. Windows будет притворяться приложением, что оно работает на стандартном дисплее 96 DPI 1920x1080 и соответствующим образом масштабирует приложение. Он предназначен для размещения старых приложений, предназначенных для дисплеев с низким разрешением DPI. Некоторые артефакты могут возникать в результате такого масштабирования.
- System-DPI Aware: этот уровень был введен в Windows-Vista. Он отличается от Per-Monitor DPI Aware только при подключении нескольких мониторов. Windows рассчитает масштабирование, подходящее для всех подключенных мониторов.
- Per-Monitor DPI Aware: этот уровень введен в Windows 8.1. Windows не выполняет никакого масштабирования.
Также он утверждает, что:
Приложения Qt по умолчанию являются Per-Monitor DPI Aware on Windows 8.1 или System-DPI Aware в старых версиях Windows. Начиная с Qt 5.4, уровень может быть указан путем передачи параметра плагину платформы (см. Использование qt.conf):
blockquote>
-platform windows:dpiawareness=0,1,2 Здесь вы можете прочитать дополнительную информацию здесь .
Как правило, чтобы иметь хороший интерфейс на дисплеях с высоким разрешением DPI, рассмотрите следующее:
- Используйте последнюю версию Qt
- Используйте макеты и избегайте фиксированных размеров (если вы сами не вычисляете коэффициенты масштабирования)
- Внесите соответствующие параметры, связанные с DPI, в зависимости от ваших потребностей приложения, например, установите атрибут
Qt::AA_UseHighDpiPixmaps
, если вы работаете сQPainter
и pixmaps, или вычислить коэффициент масштабирования для настройки определенных размеров элементов в особых ситуациях.