add number of parking space

This commit is contained in:
wmj committed 2017-12-16 22:10:37 +08:00
1 parent 28349f0327
commit fe01d5e215
5 files changed
+37 -13

No files matched your search

+2 -2
View File
@@ -36,7 +36,7 @@ SOURCES += \
monitor.cpp \
parkinglot.cpp \
ParkingLotWidget.cpp \
ParkingSpaceInfo.cpp \
ParkingSpaceWidget.cpp \
Road.cpp
HEADERS += \
@@ -49,7 +49,7 @@ HEADERS += \
monitor.h \
parkinglot.h \
ParkingLotWidget.h \
ParkingSpaceInfo.h \
ParkingSpaceWidget.h \
Road.h
FORMS += \
+9 -3
View File
@@ -1,12 +1,12 @@
#include "ParkingLotWidget.h"
#include "ParkingSpaceWidget.h"
#include <QFile>
#include <QMessageBox>
#include <QDomDocument>
#include <QDebug>
#include "Road.h"
#include "ParkingSpaceWidget.h"
#include <QPainter>
#include <QPaintEvent>
ParkingLotWidget::ParkingLotWidget(QWidget *parent, const QString& xml) : QWidget(parent)
{
@@ -18,7 +18,13 @@ ParkingLotWidget::ParkingLotWidget(QWidget *parent, const QString& xml) : QWidge
void ParkingLotWidget::paintEvent(QPaintEvent * event)
{
event->ignore();
}
int ParkingLotWidget::addSpace(ParkingSpaceWidget *sp)
{
m_spaceList.push_back(sp);
return m_spaceList.size();
}
ParkingLotWidget::~ParkingLotWidget()
+10 -2
View File
@@ -1,18 +1,26 @@
#pragma once
#ifndef PARKING_LOT_WIDGET
#define PARKING_LOT_WIDGET
#include <QWidget>
#include <QString>
#include <QVBoxLayout>
#include <QDomDocument>
#include <vector>
#include "ParkingSpaceWidget.h"
class ParkingSpaceWidget; // 先声明类,防止循环include
class ParkingLotWidget: public QWidget
{
Q_OBJECT
public:
explicit ParkingLotWidget(QWidget* parent, const QString& xml);
void paintEvent(QPaintEvent* event) override;
int addSpace(ParkingSpaceWidget* sp);
~ParkingLotWidget();
private:
void parse_xml(const QString& xml);
std::vector<ParkingSpaceWidget*> m_spaceList;
void parse_xml(const QString& xml);
QBoxLayout *parseLayout(const QDomElement& element);
QBoxLayout *layout = nullptr;
};
#endif
+6 -2
View File
@@ -1,8 +1,9 @@
#include "ParkingSpaceWidget.h"
#include <QPainter>
#include <QDebug>
#include "ParkingLotWidget.h"
ParkingSpaceWidget::ParkingSpaceWidget(QWidget* parent, const QString &dir)
ParkingSpaceWidget::ParkingSpaceWidget(ParkingLotWidget* parent, const QString &dir): QWidget(parent)
{
direction d = {};
const char c = dir.at(0).unicode();
@@ -30,9 +31,10 @@ ParkingSpaceWidget::ParkingSpaceWidget(QWidget* parent, const QString &dir)
setMaximumSize(60, 40);
break;
}
number = parent->addSpace(this);
}
QBoxLayout *ParkingSpaceWidget::makeParkingSapceGroup(QWidget* parent, const QString& dir, int n, const QString & expend)
QBoxLayout *ParkingSpaceWidget::makeParkingSapceGroup(ParkingLotWidget* parent, const QString& dir, int n, const QString & expend)
{
QBoxLayout *layout;
if (expend == "down")
@@ -53,6 +55,8 @@ QBoxLayout *ParkingSpaceWidget::makeParkingSapceGroup(QWidget* parent, const QSt
void ParkingSpaceWidget::paintEvent(QPaintEvent * event)
{
QPainter painter(this);
painter.setPen(Qt::black);
painter.drawText(20, 25, QString::number(number));
painter.setPen(Qt::white);
painter.setBrush(Qt::white);
painter.translate(30, 20);
+10 -4
View File
@@ -1,16 +1,22 @@
#pragma once
#ifndef PARKING_SPACE_WIDGET
#define PARKING_SPACE_WIDGET
#include <QWidget>
#include <QLayout>
#include "ParkingLotWidget.h"
class ParkingLotWidget;
class ParkingSpaceWidget: public QWidget
{
Q_OBJECT
public:
enum direction{N, S, E, W};
ParkingSpaceWidget(QWidget* parent, const QString &dir);
static QBoxLayout* makeParkingSapceGroup(QWidget* parent, const QString& dir, int n, const QString &expend);
void paintEvent(QPaintEvent* event) override;
ParkingSpaceWidget(ParkingLotWidget* parent, const QString &dir);
static QBoxLayout* makeParkingSapceGroup(ParkingLotWidget* parent, const QString& dir, int n, const QString &expend);
void paintEvent(QPaintEvent* event) override;
~ParkingSpaceWidget();
private:
int number;
direction dir;
};
#endif