我有一些数据存储在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)