PDA

View Full Version : How to fill a QList<struct> ?



falconium
1st March 2011, 20:08
Can please someone post a simple example of filling a QList of user-defined structs? I haven't found a good example so far.

E.g.:


struct MeasurementStruct {
QString counterID;
QString networkElementName;
QString netactName;
QString description;
QString object;
};

QList<MeasurementStruct *> measurementTypes;

for (int i = 0; i < counterID.count(); i++)
{
measurementTypes.append(new MeasurementStruct(??????????));
}

Edited:

Found out a workaround solution:

Header:


class MeasurementStruct {
public:
MeasurementStruct(QString counterID, QString networkElementName, QString netactName, QString description, QString object){
MeasurementStruct::counterID = counterID;
MeasurementStruct::networkElementName = networkElementName;
MeasurementStruct::netactName = netactName;
MeasurementStruct::description = description;
MeasurementStruct::object = object;
}

QString counterID;
QString networkElementName;
QString netactName;
QString description;
QString object;
};


Source:



{
for (int i = 0; i < counterID.count(); i++)
{
measurementTypes << new MeasurementStruct(counterID.at(i), networkElementName.at(i), "", "", "");
}
}

wysota
1st March 2011, 21:59
You have a list of pointers, not a list of structure objects.


MeasurementStruct *str = new MeasurementStruct;
str->counterID = ...;
//...
list.append(str);

This is a list of structure objects:

QList<MeasurementStruct> list;
MeasurementStruct str;
str.counterID = ...;
//...
list.append(str);