crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QVariant
zss
  опции профиля:
сообщение 13.4.2010, 10:36
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 112
Регистрация: 9.6.2009
Пользователь №: 815

Спасибо сказали: 0 раз(а)




Репутация:   0  


В модели используется тип QVariant.
Мне нужно было помимо QString добавить некие данные.

Создал пользовательский тип
struct ItemData
{
    QString text;
    int offset;
    int size;
    ...
}
Q_DECLARE_METATYPE(ItemData)


Но модель перестала отрисовывать данные.
То есть, как я понял, например, метод toString не возвращает теперь то, что нужно.

Можно ли как это указать для пользовательского типа, чтоб он работал как QVariant, но мог хранить еще и дополнительные пользовательские данные.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 13.4.2010, 12:27
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


а унаследовать QVariant как класс?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.4.2010, 15:51
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9648
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.10.2018, 8:31