Entradas

Mostrando entradas de agosto, 2017

Qt cross platform UI scaling ( Android / Windows / Linux )

Sé que Qt tiene otros métodos para disfrutar de una escala apropiada en cualquier plataforma, pero es bastante común el trabajar sobre un proyecto en el cual no puedes hacer uso de esos métodos y necesitas al final usar un factor común de escala para todos los elementos. Tras mucho investigar y hacer pruebas empíricas he conseguido tener un factor de escala que realmente funcione en todas las plataformas ( he probado en Android, Windows y linux ) resultando en un mismo aspecto en cualquier dispositivo sin importar de su resolución o densidad.   Aquí os cuento como hacerlo.   1.- El primer paso es obtener los dpi en los que el dispositivo está funcionando realmente   - Android - // Android tiene density baseline de 160dpi ( mdpi )  QAndroidJniObject qtActivity =  QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");  QAndroidJniObject resources = qtActivity.callObjectMethod(&q