void AbstractCardItem::paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle) { qreal scaleFactor = translatedSize.width() / boundingRect().width(); CardInfo *imageSource = facedown ? db->getCard() : info; QPixmap *translatedPixmap = imageSource->getPixmap(translatedSize.toSize()); painter->save(); QColor bgColor = Qt::transparent; if (translatedPixmap) { painter->save(); transformPainter(painter, translatedSize, angle); painter->drawPixmap(QPointF(0, 0), *translatedPixmap); painter->restore(); } else { QString colorStr; if (!color.isEmpty()) colorStr = color; else if (info->getColors().size() > 1) colorStr = "m"; else if (!info->getColors().isEmpty()) colorStr = info->getColors().first().toLower(); if (colorStr == "b") bgColor = QColor(0, 0, 0); else if (colorStr == "u") bgColor = QColor(0, 140, 180); else if (colorStr == "w") bgColor = QColor(255, 250, 140); else if (colorStr == "r") bgColor = QColor(230, 0, 0); else if (colorStr == "g") bgColor = QColor(0, 160, 0); else if (colorStr == "m") bgColor = QColor(250, 190, 30); else bgColor = QColor(230, 230, 230); } painter->setBrush(bgColor); QPen pen(Qt::black); pen.setWidth(2); painter->setPen(pen); painter->drawRect(QRectF(1, 1, CARD_WIDTH - 2, CARD_HEIGHT - 2)); if (!translatedPixmap || settingsCache->getDisplayCardNames() || facedown) { painter->save(); transformPainter(painter, translatedSize, angle); painter->setPen(Qt::white); painter->setBackground(Qt::black); painter->setBackgroundMode(Qt::OpaqueMode); QString nameStr; if (facedown) nameStr = "# " + QString::number(id); else nameStr = name; painter->drawText(QRectF(3 * scaleFactor, 3 * scaleFactor, translatedSize.width() - 6 * scaleFactor, translatedSize.height() - 6 * scaleFactor), Qt::AlignTop | Qt::AlignLeft | Qt::TextWrapAnywhere, nameStr); painter->restore(); } painter->restore(); }
void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->save(); AbstractCardItem::paint(painter, option, widget); int i = 0; QMapIterator<int, int> counterIterator(counters); while (counterIterator.hasNext()) { counterIterator.next(); QColor color; color.setHsv(counterIterator.key() * 60, 150, 255); paintNumberEllipse(counterIterator.value(), 14, color, i, counters.size(), painter); ++i; } QSizeF translatedSize = getTranslatedSize(painter); qreal scaleFactor = translatedSize.width() / boundingRect().width(); if (!pt.isEmpty()) { painter->save(); transformPainter(painter, translatedSize, tapAngle); if(info) { QStringList ptSplit = pt.split("/"); QStringList ptDbSplit = info->getPowTough().split("/"); if (getFaceDown() || ptDbSplit.at(0) != ptSplit.at(0) || ptDbSplit.at(1) != ptSplit.at(1)) painter->setPen(QColor(255, 150, 0)); else painter->setPen(Qt::white); } else { painter->setPen(Qt::white); } painter->setBackground(Qt::black); painter->setBackgroundMode(Qt::OpaqueMode); painter->drawText(QRectF(4 * scaleFactor, 4 * scaleFactor, translatedSize.width() - 10 * scaleFactor, translatedSize.height() - 8 * scaleFactor), Qt::AlignRight | Qt::AlignBottom, pt); painter->restore(); } if (!annotation.isEmpty()) { painter->save(); transformPainter(painter, translatedSize, tapAngle); painter->setBackground(Qt::black); painter->setBackgroundMode(Qt::OpaqueMode); painter->setPen(Qt::white); painter->drawText(QRectF(4 * scaleFactor, 4 * scaleFactor, translatedSize.width() - 8 * scaleFactor, translatedSize.height() - 8 * scaleFactor), Qt::AlignCenter | Qt::TextWrapAnywhere, annotation); painter->restore(); } if (getBeingPointedAt()) painter->fillRect(boundingRect(), QBrush(QColor(255, 0, 0, 100))); painter->restore(); }
void RenderArea::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.fillRect(event->rect(), QBrush(Qt::white)); painter.translate(this->width()/3, this->height()/2.5); painter.save(); transformPainter(painter); drawShape(painter); painter.restore(); drawOutline(painter); transformPainter(painter); drawCoordinates(painter); }
void RenderArea::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); if (!operations.empty()) painter.fillRect(event->rect(), QBrush(Qt::white)); painter.fillRect(event->rect(), QBrush(Qt::black)); painter.translate(this->width()/3, this->height()/3); transformPainter(painter); drawShape(painter); transformPainter(painter); drawCoordinates(painter); }
//! [5] void RenderArea::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.fillRect(event->rect(), QBrush(Qt::white)); painter.translate(66, 66); //! [5] //! [6] painter.save(); transformPainter(painter); drawShape(painter); painter.restore(); //! [6] //! [7] drawOutline(painter); //! [7] //! [8] transformPainter(painter); drawCoordinates(painter); }
void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) { painter->save(); QSizeF translatedSize = getTranslatedSize(painter); paintPicture(painter, translatedSize, tapAngle); painter->save(); painter->setRenderHint(QPainter::Antialiasing, false); transformPainter(painter, translatedSize, tapAngle); if (isSelected()) { painter->setPen(Qt::red); painter->drawRect(QRectF(0.5, 0.5, translatedSize.width() - 1, translatedSize.height() - 1)); } else if (isHovered) { painter->setPen(Qt::yellow); painter->drawRect(QRectF(0.5, 0.5, translatedSize.width() - 1, translatedSize.height() - 1)); } painter->restore(); painter->restore(); }
void Blueprint::paintEvent(QPaintEvent* /*event*/) { QPainter p(this); p.eraseRect(0,0, width(), height()); //Calculate the area of the world being viewed, in meters mViewArea.setTopLeft(-mPanning - (QPointF(width(),height()) / 2.0) / scale()); mViewArea.setBottomRight(-mPanning + (QPointF(width(),height()) / 2.0) / scale()); transformPainter(&p); p.setPen(QColor(25, 65, 89)); //draw gridlines (start with left bound rounded down to nearest line interval) for (int x=(int)Math::floorTo(mViewArea.left(), mGridRes); x <=(int)mViewArea.right(); x += mGridRes) p.drawLine(QPointF(x, mViewArea.top()), QPointF(x, mViewArea.bottom())); for (int y=(int)Math::floorTo(mViewArea.top(), mGridRes); y<=(int)mViewArea.bottom(); y += mGridRes) p.drawLine(QPointF(mViewArea.left(), y), QPointF(mViewArea.right(), y)); if (!mGame) return; p.setFont(mFont); mGame->world()->paint(&p); NavSystem* nav = mGame->world()->navSystem(); if (mShowNavmesh && nav) { //draw the navmesh for debugging/development purposes for (NavSystem::NodeIterator i = nav->nodesBegin(); i != nav->nodesEnd(); ++i) { for (unsigned int e = 0; e < (*i)->points().size(); ++e) { //draw linked edges in gray, unlinked ones in dark red if ((*i)->link(e) != 0) p.setPen(QPen(Qt::gray, 0.1)); else p.setPen(QPen(Qt::darkRed, 0.2)); p.drawLine((*i)->edge(e)); Math::Vector perp = ((*i)->edge(e).b-(*i)->edge(e).a).normal().iperpCW(); p.drawLine((*i)->edge(e).midpoint(), (*i)->edge(e).midpoint()+perp); } } } }
QPainter* Blueprint::createPainter() { QPainter* p = new QPainter(this); transformPainter(p); return p; }