如何在 Qt 的列表列表中推送值?
How to push values in a list of lists in Qt?
在头文件中,我有这个:
private:
Q_PROPERTY(QList <QList <QString> > dummy READ dummy WRITE setDummy NOTIFY dummyChanged)
QList <QList <QString> > m_dummy;
public:
QList <QList <QString> > dummy() const
{
return m_dummy;
}
public slots:
void setDummy(QList <QList <QString> > arg)
{
if (m_dummy == arg)
return;
m_dummy = arg;
emit dummyChanged(arg);
}
signals:
void dummyChanged(QList <QList <QString> > arg);
在 CPP 文件中,在我编写的一个函数中:
QList <QString> p;
p.push_back("abc");
p.push_back("def");
QList <QString> q;
q.push_back("ghi");
q.push_back("jkl");
dummy.push_back (p);
dummy.push_back (q);
我得到的编译错误是:
错误:'((TablesAndChartsDatabaseQueries*)this)->TablesAndChartsDatabaseQueries::dummy' 没有 class 类型
dummy.push_back (p);
我错过了什么?
尝试使用dummy.append(q)
或dummy.insert(q.size(), q)
我想知道 "READ dummy WRITE setDummy NOTIFY dummyChanged" 是什么意思。
我认为您需要调用函数 dummy() 而不是直接访问 dummy。所以试试 dummy().push_back()
或 dummy().append()
.
使用 .bla() 访问函数会出现编译错误:
memberFunction.bla() -> does not have class type
,刚测试过
所以你的 "dummy.push_back()" 试图以错误的方式使用函数,而不是 属性。
如下:
I guess you should call m_dummy.push_back(p) and not dummy.push_back(p) because dummy is the method to get the "dummy".
我认为,设置所需值的更好方法是调用 setDummy
函数并让它执行其创建的任务。
QList <QList <QString> > localDummy;
QList <QString> p;
p.push_back("abc");
p.push_back("def");
QList <QString> q;
q.push_back("ghi");
q.push_back("jkl");
localDummy.push_back (p);
localDummy.push_back (q);
setDummy (localDummy);
在头文件中,我有这个:
private:
Q_PROPERTY(QList <QList <QString> > dummy READ dummy WRITE setDummy NOTIFY dummyChanged)
QList <QList <QString> > m_dummy;
public:
QList <QList <QString> > dummy() const
{
return m_dummy;
}
public slots:
void setDummy(QList <QList <QString> > arg)
{
if (m_dummy == arg)
return;
m_dummy = arg;
emit dummyChanged(arg);
}
signals:
void dummyChanged(QList <QList <QString> > arg);
在 CPP 文件中,在我编写的一个函数中:
QList <QString> p;
p.push_back("abc");
p.push_back("def");
QList <QString> q;
q.push_back("ghi");
q.push_back("jkl");
dummy.push_back (p);
dummy.push_back (q);
我得到的编译错误是:
错误:'((TablesAndChartsDatabaseQueries*)this)->TablesAndChartsDatabaseQueries::dummy' 没有 class 类型 dummy.push_back (p);
我错过了什么?
尝试使用dummy.append(q)
或dummy.insert(q.size(), q)
我想知道 "READ dummy WRITE setDummy NOTIFY dummyChanged" 是什么意思。
我认为您需要调用函数 dummy() 而不是直接访问 dummy。所以试试 dummy().push_back()
或 dummy().append()
.
使用 .bla() 访问函数会出现编译错误:
memberFunction.bla() -> does not have class type
,刚测试过
所以你的 "dummy.push_back()" 试图以错误的方式使用函数,而不是 属性。
I guess you should call m_dummy.push_back(p) and not dummy.push_back(p) because dummy is the method to get the "dummy".
我认为,设置所需值的更好方法是调用 setDummy
函数并让它执行其创建的任务。
QList <QList <QString> > localDummy;
QList <QString> p;
p.push_back("abc");
p.push_back("def");
QList <QString> q;
q.push_back("ghi");
q.push_back("jkl");
localDummy.push_back (p);
localDummy.push_back (q);
setDummy (localDummy);