QtQuick,如何知道应用程序是在调试模式还是发布模式下编译的?

Ric*_*rdo 7 qt qml qt-quick qtquick2 qtquickcontrols

在Qt/C++中有QT_DEBUG定义宏来知道它何时在调试或发布时编译.

是否有任何方法可以知道应用程序是否在QML文件中以调试或释放模式运行?

Mit*_*tch 13

您可以使用上下文属性将C++对象公开给QML:

#include <QtGui/QGuiApplication>
#include <QQmlContext>
#include <QQuickView>
#include "qtquick2applicationviewer.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;
#ifdef QT_DEBUG
    viewer.rootContext()->setContextProperty("debug", true);
#else
    viewer.rootContext()->setContextProperty("debug", false);
#endif
    viewer.setMainQmlFile(QStringLiteral("qml/quick/main.qml"));
    viewer.showExpanded();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

main.qml:

import QtQuick 2.2

Item {
    id: scene
    width: 360
    height: 360

    Text {
        anchors.centerIn: parent
        text: debug
    }
}
Run Code Online (Sandbox Code Playgroud)

纯粹从QML中确定这是不可能的.