Estoy tratando de anexar elementos a un QList en tiempo de ejecución, pero estoy ejecutando un mensaje de error. Básicamente, lo que intento hacer es crear una QList de QLists y agregar algunos objetos customClass a cada una de las listas internas. Aquí está mi código:Anexando a QList de QList
widget.h:
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
public slots:
static QList<QList<customClass> > testlist(){
QList<QList<customClass> > mylist;
for(int w=0 ; w<5 ; w++){
mylist.append(QList<customClass>());
}
for(int z=0 ; z<mylist.size() ; z++){
for(int x=0 ; x<10 ; x++){
customClass co = customClass();
mylist.at(z).append(co);
}
}
return mylist;
}
};
customclass.h:
class customClass
{
public:
customClass(){
this->varInt = 1;
this->varQString = "hello world";
}
int varInt;
QString varQString;
};
main.cpp:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
QList<QList<customClass> > list;
list = w.testlist();
w.show();
return a.exec();
}
Pero cuando intento compilar la aplicación, Emite este error:
error: passing `const QList<customClass>' as `this' argument of `void List<T>::append(const T&) [with T = customClass]' discards qualifiers
también probé la inserción de los objetos usando foreach:
foreach(QList<customClass> list, mylist){
for(int x=0 ; x<10 ; x++){
list.append(customClass());
}
}
se había ido el error, pero los objetos CustomClass no se adjuntaron, pude verificar que mediante el uso de un bucle de depuración en principal que mostró los QLists interiores tamaños como cero. ¿Qué estoy haciendo mal?
Quizás deba decir: "Pero cuando intento compilar la aplicación" en lugar de: "Pero cuando intento ejecutar la aplicación". Correr y compilar son dos cosas diferentes hasta donde yo sé. –
Editado para corregir esa parte. –
Elimine la palabra clave estática de la definición de testlist() o mueva la lista de prueba a público desde los espacios públicos. No creo que Qt admita ranuras estáticas. – erelender