双击事件

This commit is contained in:
TurnMeOn committed 2017-12-25 21:26:22 +08:00
1 parent 7b7c708a3b
commit dceb795856
3 files changed
+81 -77

No files matched your search

+79 -76
View File
@@ -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("请求权限失败");
}
}
+1
View File
@@ -3,6 +3,7 @@
#include <QWidget>
#include <QLayout>
#include <QLabel>
#include <QMouseEvent>
#include "ParkingLotWidget.h"
class ParkingLotWidget;
+1 -1
View File
@@ -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