Автор: zss 13.4.2010, 10:36
В модели используется тип QVariant.
Мне нужно было помимо QString добавить некие данные.
Создал пользовательский тип
struct ItemData
{
QString text;
int offset;
int size;
...
}
Q_DECLARE_METATYPE(ItemData)
Но модель перестала отрисовывать данные.
То есть, как я понял, например, метод toString не возвращает теперь то, что нужно.
Можно ли как это указать для пользовательского типа, чтоб он работал как QVariant, но мог хранить еще и дополнительные пользовательские данные.
Автор: ufna 13.4.2010, 12:27
а унаследовать QVariant как класс?
Автор: Litkevich Yuriy 13.4.2010, 15:51
Цитата(zss @ 13.4.2010, 14:36)
метод toString не возвращает теперь то, что нужно.
он просто ничего не возвращает, т.к. QVariant не имеет никакого представления о том, как твою структуру к QString приводить
Цитата(zss @ 13.4.2010, 14:36)
Мне нужно было помимо QString добавить некие данные.
пользовательские данные добавляются тем же методом что и все остальные:
bool QSqlTableModel::setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ) [virtual]
только роль выбирается Qt::UserRole