Глобальные функции или макросы для получения версии Qt в коде QML - PullRequest
0 голосов
/ 12 ноября 2018

Как я могу получить версию Qt, например 5.11.2 или аналогичную, в моем коде QML. В моем коде C ++ у меня есть эти параметры:

Метод доступен на C ++:

qVersion();

Макрос доступен на C ++:

QT_VERSION

Но я не смог ничего найти на QML?

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете использовать свойство контекста, как объяснено здесь .

Простой пример для простого файла qml, подобного следующему:

import QtQuick 2.9
import QtQuick.Window 2.2

Window {

    Text {
        text: qtversion
    }

    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
}

Установить свойство qtversion при запуске, в функции main:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.rootContext()->setContextProperty("qtversion", QString(qVersion()));
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;    

    return app.exec();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...