Весь пример - в прикрепленном файле.
Все-таки цеплять наследованием не очень хорошо - структура может быть вообще "незнакома с Qt"
Но в целом мне понравилось, спасибо
Вариант, предложенный ViTech, мне нравится. Но для него нужно иметь шпаргалку "0 -Temperature X", "1 - Temperature Y" и т.д., 50 штук.
Да, нужны enum'чики, по сути мы присваиваем каждому полю уникальное ID. Пусть его придется мапить в имя и обратно, но часто это имеет смысл, обращение по ID удобнее, Ну и опять-таки, можно обойтись простейшими средствами, напр
C++ (Qt)
QVariant GetParamByID( const ParameterRow & row, ParameterRow::TID ID )
{
switch (ID) {
case ParameterRow::id_Temperature:
return row.temperature;
case ParameterRow::id_Path:
return row.path;
case ParameterRow::id_Value:
return row.someValue;
default:
Q_ASSERT(0); // invalid ID
}
return 0;
}
Оформлять это в более общем виде (неизбежно раздувая, наворачивая код) - ну не знаю.. "Выйгрышь" конечно будет (если такие структуры идут бурным потоком), но насколько - хз. Спрячусь за стандартную фразу "зависит от задачи"