Qt Quick 2.0のドキュメントにある例に基づいてコードを作成しListModel
、C++ から動的に QML にデータを提供しました。
MyModel.h :
class MyObject: public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
public:
MyObject(QObject *parent=0);
~MyObject();
QString name() const;
void setName(const QString &name);
QString deviceName;
Q_SIGNALS:
void nameChanged();
};
QML ファイル:
import QtQuick 2.0
ListView {
width: 100; height: 100
model: myModel
delegate: Rectangle {
height: 25
width: 100
Text { text: name }
}
}
私のMain.cppQList<QObject *>
で、いくつかのインスタンスで満たす を作成し、MyModel
それが機能するようになりました。
QList<QObject *> listElems;
listElems.append(new MyModel());
listElems.append(new MyModel());
QQmlContext *ctxt = view->rootContext();
ctxt->setContextProperty("myModel",QVariant::fromValue(listElems));
しかし、 a を使用する代わりに aQList<QObject *>
を使用するとQList<MyObject *>
、QML をロードするときに、プロパティ名が定義されていないことを示すエラーが発生します。
qrc:view.qml:10: ReferenceError: 名前が定義されていません
qRegisterMetaType<T>()
and を使用してみましたが、qmlRegisterType<T>()
成功しませんでした。私は何を間違っていますか?