XSteam/src/xsteam_view_item.cpp

41 lines
1.3 KiB
C++

#include "xsteam_view_item.h"
xsteam_view_item::xsteam_view_item(QObject *parent)
: QItemDelegate(parent)
{
}
void xsteam_view_item::paint(QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
if (index.column() == 0)
{
const QAbstractItemModel *model = index.model();
QString pic_str = QDir::currentPath() + "/save/img/" + model->data(model->index(index.row(), 0)).value<QString>();
QVariant var = model->data(index, Qt::DisplayRole);
//qDebug() << "pic_str:" << pic_str;
QPixmap pic;
if (QFile(pic_str).exists())
{
pic.load(pic_str);
}
else
{
pic.load(":/res/img/xsteam.png");
}
QRect rect = option.rect;
pic = pic.scaled(rect.width(), rect.height(),Qt::KeepAspectRatio);
int width = pic.width();
int height = pic.height();
int x = rect.x() + rect.width() / 2 - width / 2;
int y = rect.y() + rect.height() / 2 - height / 2;
painter->drawPixmap(x, y, pic);
return;
}
QItemDelegate::paint(painter, option, index);
return;
}