2

単純なニーズがあります:C++クラスを定義しました

class MyClass: public QDeclarativeItem
{
  Q_OBJECT
  public:
    MyClass(QDeclarativeItem * parent=0);
    ...

  private:
    QList<QString> mList
}

そしてもちろん、私はそれを登録しました:qmlRegisterType<MyClass>(...)

QMLコードで自分のにアクセスしたいQList<QString> mList。どうすればいいですか?

単純な問題のように見えるのでイライラしますが、これについては何も見つかりません。(Q_INVOKABLEスロットを作成することはできますが、結果などを読み取ることができません...)

編集:QMLがサポートするデータ型

4

2 に答える 2

4

QListこれは、QtのQMLバインディングでサポートされているデータ型ではないと思います。QtWebkitBridgeを使用したC++とJavaScript間のインターフェースで同様の問題が発生しました。

可能であれば、のQVariantList代わりにを使用してみてくださいQList。これは技術的にはtypedefですが、QList<QVariant>機能するはずです。

于 2011-06-22T13:33:24.727 に答える
2

リストにカスタムタイプ(文字列やその他の基本タイプだけでなく)が必要な場合は、その場合のQDeclarativeListPropertyがあります。

ただし、もっと複雑です。http://doc.qt.nokia.com/4.7/declarative-tutorials-extending-chapter5-listproperties.htmlを参照してください

于 2011-06-22T23:36:44.240 に答える