Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
— позиционирование и масштабирование элементов на нескольких устройствах с разными разрешениями и размерами экранов;Доступно на десктопе
— вызов платформозависимого кода, недоступного в WindowsОтлаживаем платформозависимый код — значит нужна перекомпиляция. Если он уже отлажен, значит интерфейс пишем на десктопе.
— позиционирование и масштабирование элементов на нескольких устройствах с разными разрешениями и размерами экранов;
— вызов платформозависимого кода, недоступного в Windows
К тому же я например не знаю как на десктопе симулировать различные dpi/ppi.
#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);
Rectangle {
height: 20*mm;
width: 40*dp;
}
// BUG with dpi on some androids: bugreports.qt-project.org/browse/QTBUG-35701
// Workaround:
if (myComponent.status == Component.Ready) { ... }
myComponent.statusChanged.connect(function() { ... })
If you are certain the QML file to be loaded is a local file, you could omit the finishCreation() function and call createObject() immediatelyТак что использование вполне себе правильное.
Ускоряем отладку и прототипирование мобильных QML-приложений на живом устройстве