日志
自定义 QGraphicsPixmpaItem,实现QGraphicsScene 里添加pixmpap
2017-10-31 19:42
class QTEGraphicsPixmapItem : public QGraphicsPixmapItem
{ public: explicit QTEGraphicsPixmapItem(QTEGraphicsItem *parent = 0); public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QRectF boundingRect() const ; void setQTEpixmap(QPixmap pixmap); QPixmap qtpixmap; }; void QTEGraphicsPixmapItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { QRect r = QRect(option->rect.left(), option->rect.top(), option->rect.width(), option->rect.height()); painter->drawPixmap(r,qtpixmap); } QRectF QTEGraphicsPixmapItem::boundingRect() const { // 可以在这里调整 图像的大小,比例。 QRect rect = this->pixmap().rect(); return QRectF(0,0,rect.width(),rect.width()); } void QTEGraphicsPixmapItem::setQTEpixmap(QPixmap pixmap) { qtpixmap = pixmap; setPixmap(qtpixmap); } //调用形式 QTEGraphicsPixmapItem *QTEGraphicsScene::addPixmap(const QPixmap &pixmap) { QTEGraphicsPixmapItem* item = new QTEGraphicsPixmapItem; item->setQTEpixmap(pixmap); // item->setScale(5); 该代码无效 // item->setPixmap(pixmap); addItem(item); return item; } // 调整图片大小可用下列代码 void QTEWordExpress::addPixmap(const QPixmap & pixmap, QPointF pos) { QPixmap ppixmap = pixmap.scaled(600,800); QTEGraphicsPixmapItem * item = pageScene->addPixmap(ppixmap); } |
下一篇: 实现了打印和预览功能
上一篇: 除去flags 里的可编辑属性