Cómo resolver el problema de HiDPI con aplicaciones Qt

Cómo resolver el problema de HiDPI con aplicaciones Qt

Recientemente comencé a usar el comando xrandr --dpi 166para mi nueva computadora portátil ejecutandoUbuntu 16.04.3 de 64 bitsdespués de notar que de lo contrario el sistema usa automáticamente 96 ppp.

Sin embargo, una configuración de ppp tan alta da como resultado menús y barras de herramientas extremadamente grandes.solo en aplicaciones QtTengo, como Master PDF Editor, digiKam y Krita (los dos últimos están en formato AppImage). Otras aplicaciones que se ejecutan en entornos Java o WINE no plantean tales problemas.

Espero encontrar una manera de ingresar manualmente una configuración de ppp específica para aplicaciones Qt o alguna otra forma de resolver este problema.

Si no hay forma de especificar globalmente una configuración de ppp para las aplicaciones Qt, tal vez un simple script contenedor que ingrese xrandr --dpi 96antes y restaure la configuración inicial de ppp después de dicha aplicación también podría funcionar...

Respuesta1

Una solución temporal menos que perfecta que he encontrado es el siguiente script bash contenedor simple que se puede usar en el archivo .desktop relevante en lugar del ejecutable de la aplicación en cuestión, por ejemplo 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

Esto restaurará la configuración de ppp original solo si se abre y cierra una de esas aplicaciones, o en caso de que se inicie más de una aplicación, solo si la primera aplicación se cierra en último lugar.

En segundo lugar, de alguna manera algunos elementos de la GUI distintos de los menús y las barras de herramientas no se pueden arreglar de esta manera, por ejemplo, el tamaño del cursor en el espacio de trabajo de Krita...

Respuesta2

Pude lograr resultados bastante buenos ajustando algunas variables de entorno de Qt, a saber QT_AUTO_SCREEN_SCALE_FACTORy QT_SCALE_FACTOR. Puede elegir sus propios valores, que podrían adaptarse mejor a su caso:

$ QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_SCALE_FACTOR=1.1 virtualbox

Puede encontrar más información sobre Qt vars aquí:https://doc.qt.io/qt-6.2/highdpi.html

información relacionada