【问题标题】:QML : How to read a QList from C++QML:如何从 C++ 中读取 QList
【发布时间】:2011-06-22 10:08:28
【问题描述】:

我有一个简单的需求:我定义了一个 C++ 类

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

  private:
    QList<QString> mList
}

当然,我已经注册了它:qmlRegisterType&lt;MyClass&gt;(...)

我想在 QML 代码中访问我的QList&lt;QString&gt; mList。我该怎么做?

这让我很恼火,因为它看起来像一个简单的问题,但我找不到任何关于此的信息。 (我可以创建一个 Q_INVOKABLE 插槽,但我无法读取结果等...)

编辑:QML supported Data Types

【问题讨论】:

    标签: qt signals-slots qml


    【解决方案1】:

    我不认为 QList 是 Qt 的 QML 绑定支持的数据类型。我在使用 QtWebkit 桥接 C++ 和 JavaScript 时遇到了类似的问题。

    如果可能,请尝试使用QVariantList 而不是QList。虽然这在技术上是 QList&lt;QVariant&gt; 的 typedef,但我认为它应该可以工作。

    【讨论】:

    【解决方案2】:

    如果您在列表中需要自定义类型(不仅仅是字符串或其他基本类型),则可以使用 QDeclarativeListProperty。

    不过比较复杂,见http://doc.qt.nokia.com/4.7/declarative-tutorials-extending-chapter5-listproperties.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多