Есть БД, одну из таблиц которых отображаю на форме с помощью QTableView.
Нужно в QTableView добавить столбец с картинками в ячейках, картинка зависит от значения в соседней ячейке. При этом таблицу в БД менять не надо.
Как пример - в столбце выводится температура, надо добавить еще столбец с картинками, зависящими от температуры.
Как добавить к модели столбец разобралась:
queryModel.insertColumn(11);
queryModel.setHeaderData(11, Qt::Horizontal, tr("Картинка"));
Даже удалось вставить картинку в ячейку:
QLabel *imageLabel = new QLabel();
imageLabel->setPixmap(...);
ui->tableView->setIndexWidget(index, imageLabel);
Но в таком случае надо перебирать все строки и для каждой делать new QLabel...
Можно как-то получше сделать? Или это нормально?
Если с помощью делегата, то не понимаю как.
class paintDelegate : public QItemDelegate
{
Q_OBJECT
public:
paintDelegate(QObject * parent = 0) : QItemDelegate(parent) {}
void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
if(index.row() == 11)
{
// омайгад, что же тут писать
}
else
{
QItemDelegate::paint(painter , option , index) ;
}
}
};
Помогите, пожалуйста =)