Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef Q_OS_ANDROID
- // BUG with dpi on some androids: https://bugreports.qt-project.org/browse/QTBUG-35701
- // Workaround:
- QAndroidJniObject qtActivity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
- QAndroidJniObject resources = qtActivity.callObjectMethod("getResources", "()Landroid/content/res/Resources;");
- QAndroidJniObject displayMetrics = resources.callObjectMethod("getDisplayMetrics", "()Landroid/util/DisplayMetrics;");
- int density = displayMetrics.getField<int>("densityDpi");
- #else
- QScreen *screen = qApp->primaryScreen();
- float density = screen->physicalDotsPerInch();
- #endif
- engine.rootContext()->setContextProperty("mm",density / 25.4);
- engine.rootContext()->setContextProperty("pt", 1);
- double scale = density < 180 ? 1 :
- density < 270 ? 1.5 :
- density < 360 ? 2 : 3;
- engine.rootContext()->setContextProperty("dp", scale);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement