传递'const QVariant' 'this'参数会丢弃限定符 [-允许]
passing 'const QVariant' as 'this' argument discards qualifiers [-fpermissive]
我有这样的struct
:
struct StorageConfig {
QString id;
QString description;
QVariant value;
};
我想将QLineEdit
的值分配给我的StorageConfig.value
的值:
for (int j=0; j<parameters.count(); j++) {
if (parameters.at(j).id == id) {
parameters.at(j).value = QVariant(myQLineEdit->text());
break;
}
}
parameters
是一个QList<StorageConfig>
但是我得到了这个错误:
将"const QVariant"作为"this"参数传递会丢弃限定符 [-fallowive]
parameters.at(j).value = QVariant(myQLineEdit->text()); ^
我完全理解这个问题:myQLineEdit->text()
返回一个const
,我不能断言const
到一个non-const
变量。 没关系。
但我的问题是...我不知道如何解决这个问题。我无法删除const
text()
的状态,因为它是内部 Qt 方法。而且我不想将StorageConfig.value
更改为const
,因为我希望以后能够对其进行修改。
只是想摆脱我QString
上的这个const
. 但我不知道怎么做。我尝试过使用std::remove_const
并将text()
存储在临时QString
中,但没有奏效。所以,我没主意了。
有什么帮助吗?
谢谢。
问题是QList::at()
返回const T &
。请改用QList::operator[]
:parameters[j].value = QVariant(myQLineEdit->text());
。
相关文章:
- 如何只允许用户输入正整数
- 控制允许动态运行c++的并发操作数
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 允许从 std::map 的密钥窃取资源?
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 为什么 Clang 不允许"and"作为函数名称?
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 不允许在向量中添加更多元素
- std::带有自定义缓冲区的 iostream 不允许我写入
- Visual Studio 2017 不允许我创建 C++ 专用模板
- 在noexcept 规范中是否允许使用"this"?
- 返回时不允许隐式转换
- 为什么 c++(g++) 不允许模板返回类型和函数名称之间有空格?
- C++标准是否允许<double>在没有开销的情况下实现 std::可选
- 对象初始化中是否允许指向此成员的指针?
- 如何允许大写和小写用户输入?
- 为什么函数声明中允许 const?
- 是否允许使用带有"w+"模式的 freopen 进行标准设置?
- 为什么 c++ 不允许(自动)强制转换?
- 传递'const QVariant' 'this'参数会丢弃限定符 [-允许]