diff --git a/ParkingSpaceWidget.cpp b/ParkingSpaceWidget.cpp index dda1e3d..0fc978f 100644 --- a/ParkingSpaceWidget.cpp +++ b/ParkingSpaceWidget.cpp @@ -14,32 +14,32 @@ ParkingSpaceWidget::ParkingSpaceWidget(ParkingLotWidget* parent, const QString &dir): QWidget(parent) { - direction d = {}; - const char c = dir.at(0).unicode(); - switch (c) - { - case 'N':d = N; break; - case 'E':d = E; break; - case 'W':d = W; break; - case 'S':d = S; break; - default: qDebug() << this->objectName() << "错误的方向"; - } - this->dir = d; - switch (this->dir) - { - case N: - case S: - resize(40, 60); - setMinimumSize(40, 60); - setMaximumSize(40, 60); - break; - case E: - case W: - resize(60, 40); - setMinimumSize(60, 40); - setMaximumSize(60, 40); - break; - } + direction d = {}; + const char c = dir.at(0).unicode(); + switch (c) + { + case 'N':d = N; break; + case 'E':d = E; break; + case 'W':d = W; break; + case 'S':d = S; break; + default: qDebug() << this->objectName() << "错误的方向"; + } + this->dir = d; + switch (this->dir) + { + case N: + case S: + resize(40, 60); + setMinimumSize(40, 60); + setMaximumSize(40, 60); + break; + case E: + case W: + resize(60, 40); + setMinimumSize(60, 40); + setMaximumSize(60, 40); + break; + } number = parent->addSpace(this); setToolTip(QString::number(number)); QObject::connect(parent, &ParkingLotWidget::showMargain, [this](bool b){ @@ -51,25 +51,25 @@ ParkingSpaceWidget::ParkingSpaceWidget(ParkingLotWidget* parent, const QString & QBoxLayout *ParkingSpaceWidget::makeParkingSapceGroup(ParkingLotWidget* parent, const QString& dir, int n, const QString & expend) { - QBoxLayout *layout; - if (expend == "down") - layout = new QVBoxLayout(); - else - layout = new QHBoxLayout(); - for (int i = 0; i < n; i++) - { - ParkingSpaceWidget *pk = new ParkingSpaceWidget(parent, dir); - layout->addWidget(pk); - } - layout->addStretch(); // 居上或居左对齐 - layout->setMargin(0); - layout->setSpacing(0); - return layout; + QBoxLayout *layout; + if (expend == "down") + layout = new QVBoxLayout(); + else + layout = new QHBoxLayout(); + for (int i = 0; i < n; i++) + { + ParkingSpaceWidget *pk = new ParkingSpaceWidget(parent, dir); + layout->addWidget(pk); + } + layout->addStretch(); // 居上或居左对齐 + layout->setMargin(0); + layout->setSpacing(0); + return layout; } void ParkingSpaceWidget::paintEvent(QPaintEvent *) { - QPainter painter(this); + QPainter painter(this); painter.setPen(Qt::black); painter.drawText(20, 25, QString::number(number)); QString p; @@ -77,27 +77,27 @@ void ParkingSpaceWidget::paintEvent(QPaintEvent *) p.append(","); p.append(QString::number(pos().y())); - painter.setPen(Qt::white); - painter.setBrush(Qt::white); + painter.setPen(Qt::white); + painter.setBrush(Qt::white); //painter.save(); - painter.translate(30, 20); - switch (dir) { - case E: - break; - case S: - painter.rotate(270); - break; - case W: - painter.rotate(180); - break; - case N: - painter.rotate(90); - break; - } - painter.translate(-30, -20); - painter.drawRect(0, 0, 60, 5); - painter.drawRect(0, 5, 10, 35); - painter.drawRect(10, 35, 50, 5); + painter.translate(30, 20); + switch (dir) { + case E: + break; + case S: + painter.rotate(270); + break; + case W: + painter.rotate(180); + break; + case N: + painter.rotate(90); + break; + } + painter.translate(-30, -20); + painter.drawRect(0, 0, 60, 5); + painter.drawRect(0, 5, 10, 35); + painter.drawRect(10, 35, 50, 5); if (m_showMargin) { painter.setPen(Qt::blue); painter.setBrush(Qt::NoBrush); @@ -141,24 +141,27 @@ ParkingSpaceWidget::direction ParkingSpaceWidget::getDir() const return dir; } -void ParkingSpaceWidget::mouseDoubleClickEvent(QMouseEvent *) +void ParkingSpaceWidget::mouseDoubleClickEvent(QMouseEvent *event) { - if (REQUIRE_PREMISSION) { - Log::i("请求权限成功"); - if (m_situation == banned) { - qDebug() << "禁用解除" << number; - emit ban(false, number); - m_situation = free; - } else if (m_situation == free) { - qDebug() << "禁用车位" << number; - emit ban(true, number); - m_situation = banned; + if(event->button()==Qt::LeftButton) + { + if (REQUIRE_PREMISSION) { + Log::i("请求权限成功"); + if (m_situation == banned) { + qDebug() << "禁用解除" << number; + emit ban(false, number); + m_situation = free; + } else if (m_situation == free) { + qDebug() << "禁用车位" << number; + emit ban(true, number); + m_situation = banned; + } else { + qDebug() << "车位已被占用"; + } + update(); } else { - qDebug() << "车位已被占用"; + Log::i("请求权限失败"); } - update(); - } else { - Log::i("请求权限失败"); } } diff --git a/ParkingSpaceWidget.h b/ParkingSpaceWidget.h index 18e5856..6ac1d0d 100644 --- a/ParkingSpaceWidget.h +++ b/ParkingSpaceWidget.h @@ -3,6 +3,7 @@ #include #include #include +#include #include "ParkingLotWidget.h" class ParkingLotWidget; diff --git a/car.cpp b/car.cpp index a504961..21e973e 100644 --- a/car.cpp +++ b/car.cpp @@ -282,7 +282,7 @@ void Car::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { if(event->button()==Qt::LeftButton) emit out(this,-1); - event->ignore(); + event->accept(); } int Car::getTargetFloor() const