2013-10-10 46 views
1

我有一個Circle對象,它包含要繪製它的屬性,如寬度,座標xy,顏色。我有這個圈子(對象)的清單,但是當我嘗試更改顏色時出現錯誤。如何更改qlist中顏色的值

class Circle { 
int x; 
int y; 
int width; 
QColor color 
} 

QList <Circle> circles; 

我一些圈子添加到這裏的列表是通過 '常量的QColor' 爲 '本' 的QColor &的」的說法問題

circles.at(3).color = Qt::yellow; 

的QColor ::運算符=(QT :: GlobalColor) '丟棄限定符[-fpermissive]

回答

7

QListat()函數返回const引用:const T & QList::at(int i) const,所以您不能修改它。使用operator[]來代替:circles[3].color = Qt::yellow

還要注意的是,現在你的類的所有成員都是private(默認情況下),所以你將不能夠設置color反正。

+0

在使用'[]'運算符之前,不要忘記檢查索引超出範圍。 – vahancho

+0

@vahancho,'at()'不檢查數組範圍,所以我假設OP知道它。 – SingerOfTheFall