|
- #include "contact.h"
- #include <QPainter>
- #include <QStyleOptionGraphicsItem>
-
- Contact::Contact(const QString &type) : Item(type)
- {
-
- }
-
- void Contact::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
- {
- painter->setRenderHint(QPainter::Antialiasing);
- if (type_ == "常开") {
- painter->drawLine(-12, 0, -4, 0);
- painter->drawLine(-4, -8, -4, 8);
- painter->drawLine(4, -8, 4, 8);
- painter->drawLine(4, 0, 12, 0);
-
- // 锚点
- painter->setBrush(Qt::darkGray);
- painter->setPen(Qt::NoPen);
- painter->drawEllipse(QPointF(-18, 0), 4, 4); // 左
- painter->drawEllipse(QPointF(18, 0), 4, 4); // 右
- }
- else if (type_ == "常闭") {
- painter->drawLine(-15, -10, 15, 10); // 对角线
- painter->drawLine(-12, 0, -4, 0);
- painter->drawLine(-4, -8, -4, 8);
- painter->drawLine(4, -8, 4, 8);
- painter->drawLine(4, 0, 12, 0);
-
- // 锚点
- 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());
- }
- }
|