Files
gcs-nf/opmap/mapwidget/AltitudeItem.cpp
T
2020-06-01 18:25:33 +08:00

110 lines
2.3 KiB
C++

#include "AltitudeItem.h"
namespace mapcontrol {
AltitudeItem::AltitudeItem(MapGraphicItem *map, QColor background) : myMap(map), myColor(background)
{
this->setFlag(QGraphicsItem::ItemIsMovable, false);
this->setFlag(QGraphicsItem::ItemIgnoresTransformations, false);
this->setFlag(QGraphicsItem::ItemIsSelectable, false);
connect(map, SIGNAL(childRefreshPosition()), this, SLOT(RefreshPos()));
connect(map, SIGNAL(childSetOpacity(qreal)), this, SLOT(setOpacitySlot(qreal)));
this->setZValue(4);
}
QRectF AltitudeItem::boundingRect() const //鼠标可以操作的大小
{
return QRectF(0,0,20,150);
}
void AltitudeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
QPen ePen;
ePen.setWidth(1);
if (this->isSelected()) {
ePen.setColor(QColor("#008B00"));
painter->setBrush(QColor("#008B00"));
}
else {
ePen.setColor(QColor("#8B4500"));
painter->setBrush(QColor("#8B4500"));
}
painter->setPen(ePen);
painter->drawEllipse(0,0,20,20);
ePen.setColor(QColor("#FFFFFF"));
painter->setPen(ePen);
QFont font;
font.setWeight(QFont::ExtraLight);
font.setFamily("Arial");//非衬线
font.setPixelSize(12);
painter->setFont(font);
painter->drawText(0,0,20,20,Qt::AlignCenter,QString::number(0));
}
void AltitudeItem::RefreshPos()
{
this->setPos(0,myMap->boundingRect().height() - this->boundingRect().height());
}
void AltitudeItem::setOpacitySlot(qreal opacity)
{
setOpacity(opacity);
}
void AltitudeItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << "mousePressEvent";
if (event->button() == Qt::LeftButton) {
}
qDebug() << event;
QGraphicsItem::mousePressEvent(event);
}
void AltitudeItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << "mouseReleaseEvent";
if (event->button() == Qt::LeftButton) {
}
QGraphicsItem::mouseReleaseEvent(event);
}
void AltitudeItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
}
}
void AltitudeItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if (isDragging) {
//this->setPos(event->pos());
}
QGraphicsItem::mouseMoveEvent(event);
}
}