如果我有 C++ 中的内容列表,如何将其公开给 QML(在 Qt5/QtQuick 2 中)?似乎 QML 只能理解 QObject
派生类,这是一个问题,因为 QObject
不能放入 QList
或复制.我该怎么做:
struct Thing
{
int size;
QString name;
};
class ThingManager : public QObject
{
Q_OBJECT
// These macros support QtQuick, in case we one day want to use it to make a slick
// interface (when QML desktop components are released).
Q_PROPERTY(QList<Thing> things READ things NOTIFY thingssChanged)
public:
// ...
QList<Thing> things() const;
// ...
};
这样我就可以在 QML 中做这样的事情:?
var a = thingManager.things[0].name;
最佳答案
或者,您可以使用 QVariantList
( QList<QVariant>
),传递给 QML 时会自动变为 JavaScript 数组,并且可以从 C++ 和 QML 读写
关于c++ - 从 QML 访问 C++ QLists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14287252/