⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cardsdelegate.cpp

📁 程序代码使用说明: (1)所有源代码目录下都提供了Makefile(非Qt)
💻 CPP
字号:
#include "CardsDelegate.h"#include "CardsModel.h"#include <QModelIndex>#include <QPainter>QSize CardsDelegate::cellSize(10,10);QPolygon CardsDelegate::border;void CardsDelegate::paint(QPainter *p, const QStyleOptionViewItem &o, const QModelIndex &i) const{    QVariant v = i.model()->data(i, Qt::BackgroundColorRole);    QColor color = v.value<QColor>();    QVariant font = i.model()->data(i, Qt::FontRole);    if (!font.isNull())        p->setFont(font.value<QFont>());    p->setBrush(color);    p->setPen(Qt::NoPen);    int number = i.model()->data(i, Qt::DisplayRole).toInt();    if (number == CardsModel::MAX_CARDS_NUM)     {        p->drawRect(o.rect);        return;    }    // get image from model    // scale and draw the image    v = i.model()->data(i, Qt::UserRole);    QImage img = v.value<QImage>();            int w = o.rect.width();    int h = o.rect.height();    QImage img2=img.scaled(w, h);    p->drawImage(o.rect, img2);    // draw border    QPolygon pol = border;    pol.translate(o.rect.topLeft());    p->setBrush(Qt::darkYellow);    p->drawPolygon(pol);    // if "show number", draw numbers    v = i.model()->data(i, Qt::UserRole + 1);    bool bShowNumber = v.toBool();     if( bShowNumber )     {        int x2 = w - 1;        int y2 = h - 1;                p->setPen(Qt::red);        p->drawText(o.rect.x(), o.rect.y(), x2, y2, Qt::AlignLeft | Qt::AlignTop, QString::number(number));    }            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -