#include "comparator.h" #include #include Comparator::Comparator(const QString &type) : Item(type) { } void Comparator::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) { painter->setRenderHint(QPainter::Antialiasing); if (type_ == "比较") { painter->drawRect(QRectF(-12, -8, 24, 16)); painter->setFont(QFont("Arial", 8)); painter->drawText(QRectF(-10, -8, 20, 16), Qt::AlignCenter, "CP"); // 锚点 painter->setBrush(Qt::darkGray); painter->setPen(Qt::NoPen); painter->drawEllipse(QPointF(-18, 0), 4, 4); painter->drawEllipse(QPointF(18, 0), 4, 4); } if (option->state & QStyle::State_Selected) { QPen pen(Qt::DashLine); pen.setColor(Qt::blue); pen.setWidth(2); painter->setPen(pen); painter->setBrush(Qt::NoBrush); painter->drawRect(boundingRect()); } }