mainmenu.cpp:1519:25: No viable overloaded '=' qlist.h:163:15: candidate function not viable: 'this' argument has type 'const QList<qint32>' (aka 'const QList<int>'), but method is not marked const qlist.h:166:19: candidate function not viable: 'this' argument has type 'const QList<qint32>' (aka 'const QList<int>'), but method is not marked const
时间: 2024-03-04 12:48:49 浏览: 103
如何打造一款成功的产品:以小为始,公听并观
非常抱歉,我的回答中仍然有误。由于`permission`是一个常量对象,不能直接对其进行赋值操作。如果你要清空`permission`并重新赋值,可以使用如下代码:
```cpp
QList<qint32> emptyList;
permission = QList<qint32>();
permission.append(emptyList);
```
这个操作的原理是,首先定义一个空的`QList<qint32>`对象`emptyList`,然后将其追加到空的`QList<qint32>`对象中,最终将追加后的对象赋值给常量对象`permission`。
需要注意的是,由于`permission`是一个常量对象,其元素是不可修改的。因此,如果你想修改`permission`的元素,需要将其定义为非常量对象。在修改完元素后,你可以将其重新定义为常量对象。示例代码如下:
```cpp
// 将permission定义为非常量对象
QList<qint32> permission = {1, 2, 3};
// 修改permission的元素
permission[1] = 4;
// 将permission重新定义为常量对象
const QList<qint32>& constPermission = permission;
```
这样做的原理是,首先将`permission`定义为非常量对象,然后修改其第二个元素的值。最后将`permission`重新定义为常量对象,这样就可以保证它的元素不会再被修改。
阅读全文