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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перемещение QPixmap в QAbstractTableModel  (Прочитано 3028 раз)
Borland
Гость
« : Март 01, 2012, 05:28 »

Здравствуйте!
Есть таблица QTableView, вставляю картинки и текст через QAbstractTableModel:
Код:
QVariant CurrencyModel::data(const QModelIndex &index, int role) const
{

if (!index.isValid())
return QVariant();
if (role == Qt::TextAlignmentRole) {
return int(Qt::AlignBottom);
}
else if (role == Qt::DisplayRole) {
sz=5*index.row();
QString amount = currencyAt(index.column()+sz);
return amount;
}
else if (role == Qt::DecorationRole) {
sz=5*index.row();
QPixmap pixmap;
QString amount = currencyAt(index.column()+sz);
qDebug()<<amount;
if(pixmap.isNull()) pixmap.load("radio.jpg");
pixmap.load(amount +".jpg");
pixmap=pixmap.scaled(50, 50, Qt::KeepAspectRatio);
return pixmap;
}
return QVariant();
}
QString CurrencyModel::currencyAt(int offset) const
{
if(offset >= currencyMap.size()) return "";
return (currencyMap.begin() + offset).key();
}

Получается как во вложении. Картинка всегда вставляется слева посередине. Нужно чтобы картинка была сверху, а текст под ней. Как это сделать?
Спасибо.
Записан
vitalka
Гость
« Ответ #1 : Март 01, 2012, 06:36 »

Отображение это не функция модели! Поэтому с помощью модели ты это никак не решишь. Это нужно либо настраивать QTableView (не знаю есть ли там такая настройка), либо наследовать класс от QTableView и там менять прорисовку ячейки.

Записан
Borland
Гость
« Ответ #2 : Март 01, 2012, 06:52 »

Через QItemDelegate делать картинки вставлять?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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