![Qt 앱의 HiDPI 문제를 해결하는 방법](https://rvso.com/image/898943/Qt%20%EC%95%B1%EC%9D%98%20HiDPI%20%EB%AC%B8%EC%A0%9C%EB%A5%BC%20%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
xrandr --dpi 166
나는 최근에 실행 중인 새 노트북에 명령을 사용하기 시작했습니다.우분투 16.04.3 64비트그렇지 않으면 시스템이 자동으로 96dpi를 사용한다는 것을 알게 된 후입니다.
그러나 이렇게 높은 dpi 설정으로 인해 메뉴와 도구 모음이 매우 커집니다.Qt 앱에서만나는 Master PDF Editor, digiKam 및 Krita(후자의 두 개는 AppImage 형식임)와 같은 것을 가지고 있습니다. Java 또는 WINE 환경에서 실행되는 다른 앱은 이러한 문제를 일으키지 않습니다.
Qt 앱의 특정 dpi 설정을 수동으로 입력하는 방법이나 이 문제를 해결하는 다른 방법을 찾고 싶습니다.
Qt 앱에 대한 dpi 설정을 전역적으로 지정할 수 있는 방법이 없다면, xrandr --dpi 96
그러한 앱 이전에 입력하고 이후에 초기 dpi 설정을 복원하는 간단한 래퍼 스크립트도 가능합니다.
답변1
내가 찾은 완벽하지 않은 임시 솔루션은 문제의 앱 실행 파일 대신 관련 .desktop 파일에서 사용할 수 있는 다음과 같은 간단한 래퍼 bash 스크립트입니다 masterpdfeditor4
.
#!/bin/bash
HiDPI="$(xdpyinfo | grep dots | awk -F'x' '{print $2}' | awk -F' ' '{print $1}')"
if [[ ! $HiDPI = 96 ]]
then
xrandr --dpi 96
masterpdfeditor4 "$@"
xrandr --dpi $HiDPI
else
masterpdfeditor4 "$@"
fi
이렇게 하면 해당 앱 하나를 열고 닫은 경우에만 원래 dpi 설정이 복원됩니다. 또는 해당 앱이 두 개 이상 실행되는 경우 첫 번째 앱이 마지막으로 닫히는 경우에만 복원됩니다.
둘째, 메뉴와 도구 모음 이외의 일부 GUI 요소는 이런 방식으로 수정될 수 없습니다(예: Krita 작업 공간의 커서 크기...).
답변2
QT_AUTO_SCREEN_SCALE_FACTOR
일부 Qt 환경 변수, 즉 및 를 조정하여 꽤 좋은 결과를 얻을 수 있었습니다 QT_SCALE_FACTOR
. 귀하의 사례에 더 잘 맞는 값을 직접 선택할 수 있습니다.
$ QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_SCALE_FACTOR=1.1 virtualbox
Qt 변수에 대한 자세한 내용은 여기에서 확인할 수 있습니다.https://doc.qt.io/qt-6.2/highdpi.html