【发布时间】:2017-06-10 13:06:29
【问题描述】:
我有一个这样的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' 参数传递会丢弃限定符 [-fpermissive]
parameters.at(j).value = QVariant(myQLineEdit->text()); ^
我完全理解这个问题:myQLineEdit->text() 返回一个const,我不能将const 分配给non-const 变量。没关系。
但我的问题是……我不知道如何解决这个问题。
我无法删除text() 的const 状态,因为它是一个内部Qt 方法。
而且我不想将我的StorageConfig.value 更改为const,因为我希望以后能够修改它。
我只想在我的QString 上删除这个const。但我不知道怎么做。
我尝试过使用std::remove_const 并将text() 存储在临时的QString 中,但它没有用。
所以,我没有想法。
有什么帮助吗?
谢谢。
【问题讨论】:
-
parameters是 常量QList<StorageConfig>吗?还是对 constant 对象的引用?请尝试创建Minimal, Complete, and Verifiable Example 并展示给我们。 -
猜想:你在一个 const 函数中赋值。