我最近開始使用該命令xrandr --dpi 166
來運行我的新筆記型電腦Ubuntu 16.04.3 64 位注意到否則系統會自動使用 96 dpi。
然而,如此高的 dpi 設定會導致選單和工具列變得非常大僅在 Qt 應用程式中我有,像是 Master PDF Editor、digiKam 和 Krita(後兩者是 AppImage 格式)。在Java或WINE環境中執行的其他應用程式不會造成此類問題。
我希望找到一種手動輸入 Qt 應用程式的特定 dpi 設定的方法或解決此問題的其他方法。
如果沒有辦法為 Qt 應用程式全域指定 dpi 設置,也許xrandr --dpi 96
在這樣的應用程式之前輸入一個簡單的包裝腳本並在之後恢復初始 dpi 設定也可以...
答案1
我發現的一個不太完美的臨時解決方案是以下簡單的包裝器 bash 腳本,它可以在相關的 .desktop 文件中使用,而不是相關應用程式的可執行文件,例如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