2

私は以下を持っていますQObject

#ifndef UETYPES
#define UETYPES

#include <QHash>
#include <QByteArray>
#include <QMultiMap>
#include <QString>
#include <QObject>

#include "../database/ueuserrecord.h"
#include "../database/ueorderrecord.h"

class UeTypes : public QObject
{
    Q_OBJECT

public:
    typedef QHash<int, QByteArray> UeTypeRoles;

    /*
     * QString  first parameter     userId
     * QString  second parameter    placeId
     */
    typedef QMultiMap<QString, QString> UeTypeLoggedUsers;
};

#endif // UETYPES

そして、main.cpptypedef QMultiMap<QString, QString> UeTypeLoggedUsersでQMLに公開/エクスポートしようとしています:qmlRegisterType

#include <QtQml>
#include <QApplication>
#include <QQmlApplicationEngine>

#include "core/uetypes.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;

    qmlRegisterType<UeTypes::UeTypeLoggedUsers>("si.test",
                                                1,
                                                0,
                                                "UeTypeLoggedUsers");

    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

ただし、このコードをコンパイルしようとすると、次のエラーが発生します。

エラー:「staticMetaObject」は「QMultiMap」のメンバーではありません

このエラーが発生する理由と、それを取り除く方法を教えてください。

4

1 に答える 1