41 lines
1.3 KiB
C++
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;
|
|
} |