Ответ 1
Приложения, использующие фиксированные координаты и размеры, будут выглядеть небольшими по высоким разрешениям DPI. Хотя даже при использовании макетов существуют некоторые проблемы, касающиеся размеров и полей элементов и шрифтов. К счастью, поддержка дисплеев с высоким разрешением DPI с Qt 5.4 сохраняется, так как существует много исправлений с высоким уровнем DPI.
Приложение в Windows может принимать один из следующих уровней "Осведомленность DPI" (из документации Qt):
- 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 в Windows 8.1 или System-DPI Aware для старых версий Windows. Начиная с Qt 5.4 уровень может быть задано путем передачи параметра плагину платформы (см. Используя qt.conf):
<application> -platform windows:dpiawareness=0,1,2
Вы можете прочитать дополнительную информацию здесь.
В целом, чтобы иметь хороший интерфейс на дисплеях с высоким разрешением, рассмотрите следующее:
- Используйте последнюю версию Qt
- Используйте макеты и избегайте фиксированных размеров (если вы сами не вычислите коэффициенты масштабирования)
- Сделайте соответствующие параметры, связанные с DPI, в зависимости от потребностей вашего приложения, например, установите атрибут
Qt::AA_UseHighDpiPixmaps
, если вы работаете сQPainter
и pixmaps, или вычислите коэффициент масштабирования для настройки определенных размеров элементов в особых ситуациях.