我有一个包含 first 、 last 和 sub(QList) 的类。例子:
class DataObject {
public:
DataObject(const QString &firstName,
const QString &lastName,
const QList<SubObject*> &sublist):
first(firstName),
last(lastName),
sublist(sublist){}
QString first;
QString last;
QList<SubObject*> sublist;
};
在此代码块中添加 QList 子列表后,我无法构建应用程序:
QVariant SimpleListModel::data(const QModelIndex &index,
int role) const {
if (!index.isValid())
return QVariant(); // Return Null variant if index is invalid
if (index.row() > (m_items.size()-1) )
return QVariant();
DataObject *dobj = m_items.at(index.row());
switch (role) {
case Qt::DisplayRole: // The default display role now displays the first name as well
case FirstNameRole:
return QVariant::fromValue(dobj->first);
case LastNameRole:
return QVariant::fromValue(dobj->last);
case SubListRole:
return QVariant::fromValue(dobj->sublist); //this error line
default:
return QVariant();
}
错误是: C:\Qt\5.6\mingw49_32\include\QtCore\qglobal.h:725: 错误:静态断言失败:类型未注册,请使用 Q_DECLARE_METATYPE 宏让 Qt 的元对象系统知道它#define Q_STATIC_ASSERT_X(条件,消息)静态断言(布尔(条件),消息)^