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

标签 c++ qt qml

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

C++ 可用的方法:

qVersion();

C++ 上可用的宏:

QT_VERSION

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

最佳答案

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")
}

启动时在 main 函数中设置 qtversion 属性:

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

关于c++ - 在 QML 代码中获取 Qt 版本的全局函数或宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53257803/

相关文章:

c++ - 如何在 qt 中更改一个 QBarSet 栏/元素颜色?

c++ - 如何向 QML 应用程序添加可分离区域 (QDockWidget)

qt - QML BarSeries 中的 y 轴最大值未更新

c++ - 从函数返回动态分配的 wchar_t* 数组

c++ - 结构的 QVector - 没有合适的默认构造函数可用

c++ - 依赖最小化 C++

qt - 为什么 qobject_cast 和dynamic_cast 在连接到 QWidget::destroyed 的槽中失败?

c++ - 在同一个文件中实现多个窗口的功能?

c++ - g++ std::set 找不到为类定义的运算符<

c++ - 如果没有带有 LANGUAGE CXX 的 set_source_files_properties,CMake 将无法构建