小编Ber*_*ert的帖子

使用多个视图查看,编辑和更新QML中的数据(来自C++),而数据保留在C++中(订阅数据)

我有一些数据存储在C++类(Data.cpp)的实例中.现在我希望能够在QML中从2个单独的表示中查看和编辑这些数据,这样如果View1中的值发生变化,数据本身(C++)就会发生变化,并且View2也会显示值(因为它会得到通知)当C++数据发生变化时).

这是我到目前为止所得到的:

Data.h

class Data : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)

public:
    Data(std::string name);
    QString name();
    void setName(const QString &n);

signals:
    void nameChanged();

private:
    std::string _name;
};
Run Code Online (Sandbox Code Playgroud)

Parser.h(提供数据列表)

class Parser : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QList<QObject*> list READ list NOTIFY listChanged)
    //QList<Data*> is not working with QML :(

public:
    Parser(QObject *parent = 0);
    QList<QObject*> list() //stuff below is implementd in Parser.cpp
    {
       _list.append(new Data("name 1"));
       _list.append(new Data("name 2"));
       _list.append(new Data("name 3"));
        return _list; …
Run Code Online (Sandbox Code Playgroud)

c++ qobject qlist qml

2
推荐指数
1
解决办法
4776
查看次数

标签 统计

c++ ×1

qlist ×1

qml ×1

qobject ×1