代码之家  ›  专栏  ›  技术社区  ›  Megidd

在QML代码中获取Qt版本的全局函数或宏

  •  2
  • Megidd  · 技术社区  · 6 年前

    例如,如何获取Qt版本 5.11.2

    方法在C++上可用:

    qVersion();
    

    C++上可用的宏:

    QT_VERSION
    

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

    1 回复  |  直到 6 年前
        1
  •  5
  •   GrecKo    6 年前

    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();
    }