add number of parking space
This commit is contained in:
1 parent
28349f0327
commit
fe01d5e215
5 files changed
+37
-13
No files matched your search
@@ -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 += \
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
|
||||
Reference in new issue
Block a user