1

我被这个问题发疯了。

我有这个自定义结构

struct oneRectangle
{
    QString partName;
    QGraphicsRectItem * rectangle;
};

我有一个 List 使用这个结构作为模板:

QList<oneRectangle> partList;

在我附加一个结构实体(没有初始化指针)之后,我需要做这样的事情:

partList.at(index).rectangle = some pointer points to a QGraphicsRectItem

但是,我收到一个错误,说该结构是只读结构。我尝试先 malloc 指针,然后将其附加到列表中,但是当我为指针分配地址时,我仍然得到错误。这里有什么问题?

4

2 回答 2

13

改变

partList.at(index).rectangle

进入

partList[index].rectangle

asQList::operator[](int)返回一个可修改的引用,其中QList::at(int)返回一个 const 引用(因此不可修改)。

于 2012-07-30T12:49:19.133 回答
0

重点是:使用 something.at(index) 进行显示,使用 something[index] 进行编辑。为什么不同时使用 something[] 呢?因为我在某处读过它,“.at()”更高效、更快。虽然我没有测试...

于 2012-08-02T13:09:16.247 回答