5

QML システムに C++ 型を追加しようとしています。

#include <QtGui/QGuiApplication>
#include <QDeclarativeEngine>
#include <QDeclarativeComponent>
#include "qtquick2applicationviewer.h"
#include <QQmlApplicationEngine>

class FooBar: public QObject {
    Q_OBJECT
};


int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine("qml/RBot/main.qml");

    qmlRegisterType<FooBar>("io.secorp", 1, 0, "FooBar");

    return app.exec();
}

しかし、これをコンパイルしようとすると(これを.qmlファイルにインポートせず、テストのみ)、デバッグに関するエラーが発生します。

ここに画像の説明を入力

どうしたの?

ありがとう。

4

1 に答える 1

4

サポートされていない Qt Quick 1 と 2 を混在させています。QDeclarative ヘッダーは Quick 1 用で、QQml ヘッダーは Quick 2 用です。

インクルードは次のとおりです。

#include <QtGui/QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlComponent>
#include "qtquick2applicationviewer.h"
#include "foobar.h"

FooBar の定義は独自のヘッダーにある必要があり、moc が魔法を働かせるために QObject がそこに含まれている必要があります。

詳細については、Qt で既に報告されている次のバグを参照してください。

QTBUG-32138 - QML デバッグがオンの場合、QtQuick2 の Hello World が #include でコンパイルされない

于 2013-07-23T17:14:14.437 に答える