如何5.11.2在我的 QML 代码中获得 Qt 版本,例如或类似版本。在我的 C++ 代码中,我有这些选项:
C++ 上可用的方法:
qVersion();
Run Code Online (Sandbox Code Playgroud)
C++ 上可用的宏:
QT_VERSION
Run Code Online (Sandbox Code Playgroud)
但是我在 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")
}
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)