全局函数或宏以QML代码获取Qt版本

时间:2018-11-12 07:49:13

标签: c++ qt qml

如何在我的QML代码中获得Qt版本,例如5.11.2或类似版本。在我的C ++代码中,我具有以下选项:

在C ++上可用的方法:

qVersion();

在C ++上可用的宏:

QT_VERSION

但是我在QML上找不到任何东西吗?

1 个答案:

答案 0 :(得分:3)

您可以使用上下文属性,如here所述。

一个简单的示例,给出一个简单的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();
}