Russian Qt Forum
Ноябрь 05, 2024, 22:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Модель с QPixmap для QTableView и QListView  (Прочитано 5360 раз)
shirushizo
Гость
« : Октябрь 12, 2010, 09:01 »

Необходимо создать модель, хранящую записи из БД и QPixmap из BLOB. Соответствено весь текст выводится в  QTableView, а содержимое BLOB - в QListView.
Сделал наследника QSqlQueryModel, написал функцию, которая по SQL-запросу заполняет QList<Pixmap> pixList. и вызывает QSqlQueryModel;;setQuery().
Переопределил QSqlQueryModel::data(const QModelIndex &item, int role)
Код:
{
     if(item.column()==0 && role==Qt::DecorationRole)
          return pixList.at(item.row());
     else
          return QSqlQueryModel::data(item,role);
}

Собстно, при вызове с role==Qt::DecorationRole, прога вылетает и предлагает пожаловаться поработителям.
ПО: Qt SDK 2010.05 (Qt 4.7.0/mingw/Windows 7)

Ткните носом, пожалуйста!
« Последнее редактирование: Октябрь 12, 2010, 10:20 от shirushizo » Записан
crossly
Гость
« Ответ #1 : Октябрь 12, 2010, 11:44 »

а какой смысл в QList<Pixmap> pixList??
Записан
shirushizo
Гость
« Ответ #2 : Октябрь 12, 2010, 14:22 »

Я туда из BLOD  данные загоняю, можно конечно сделать еще поле сделать, но как его тогда спрятать от QTableView?
так?
int columnCount(QModelIndex& parent)
{
     return 8;//на 1 меньше настоящего
}
Но собстно вопрос не в том как хранить, а как выводить картинки в лист, а все остальное в тайбл. Но у меня идеи кончились Грустный
Записан
crossly
Гость
« Ответ #3 : Октябрь 13, 2010, 15:20 »

setColumnHidden();

в Qt::DecorationRole делать pixmap из блоба и возвращать...

к listview прицепить туже модель... и указать в качестве колонки для отображения колонку с болбом
Записан
shirushizo
Гость
« Ответ #4 : Октябрь 13, 2010, 16:24 »

А слона как говориться я и не приметил Улыбающийся Проглядел метод, спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 21.