C++ 如何设置QVariant结构?
我有一个C++ 如何设置QVariant结构?,c++,qt,C++,Qt,我有一个QList结构,其中包含一个QVariant: typedef struct EXTRA_PARAMS_DEF { QString name; QVariant val; int channel; } EXTRA_PARAMS; QList<EXTRA_PARAMS> EP; 错误是: 错误:C2678:“=”二进制“:未找到运算符,接受左侧部分 “const QVariant”类型的操作没有可接受的转换 如何设置此QVariant?谢谢你的建议。Q
QList
结构,其中包含一个QVariant
:
typedef struct EXTRA_PARAMS_DEF {
QString name;
QVariant val;
int channel;
} EXTRA_PARAMS;
QList<EXTRA_PARAMS> EP;
错误是:
错误:C2678:“=”二进制“:未找到运算符,接受左侧部分
“const QVariant”类型的操作没有可接受的转换
如何设置此QVariant
?谢谢你的建议。QList::at(int)返回一个常量T&
,你不能分配给它
改为使用QList::operator[]
,它返回一个T&
EP[i].val = value;
QList::at(int)
返回一个常量T&
,您不能将其分配给它
改为使用QList::operator[]
,它返回一个T&
EP[i].val = value;
无法赋值,因为
QList::at
的返回值是一个const-EXTRA_-PARAMS
,它将constness传播到val
成员
运算符[]
具有非常量重载,因此将.at(i)
替换为[i]
int setParam(QVariant value)
{
for (int i=0; i<EP.count(); i++)
{
EP[i].val = value;
}
}
int setParam(QVariant值)
{
对于(int i=0;i您无法赋值,因为QList::at
的返回值是一个const额外参数
,它将constness传播到val
成员
运算符[]
具有非常量重载,因此将.at(i)
替换为[i]
int setParam(QVariant value)
{
for (int i=0; i<EP.count(); i++)
{
EP[i].val = value;
}
}
int setParam(QVariant值)
{
对于(int i=0;i