在头文件中,我有这个:
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);
我得到的编译错误是:
错误:&#39;((TablesAndChartsDatabaseQueries *)this) - &gt; TablesAndChartsDatabaseQueries :: dummy&#39;没有班级类型 dummy.push_back(p);
我错过了什么点?
答案 0 :(得分:2)
我认为你需要调用函数dummy()而不是直接访问dummy。请尝试dummy().push_back()
或dummy().append()
。
使用.bla()访问函数会出现编译错误:
memberFunction.bla() -> does not have class type
,刚测试过。
所以你的“dummy.push_back()”试图以错误的方式使用该函数而不是属性。
答案 1 :(得分:1)
thomas_b pointed out the error correctly如下:
我猜你应该调用m_dummy.push_back(p)而不是dummy.push_back(p),因为dummy是获取&#34; dummy&#34;的方法。
我认为,设置所需值的更好方法是调用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);
答案 2 :(得分:-1)
尝试使用dummy.append(q)
或dummy.insert(q.size(), q)
我想知道&#34; READ dummy WRITE setDummy NOTIFY dummyChanged&#34;装置