把停车场和ui连接起来

This commit is contained in:
wmj committed 2017-12-20 11:39:53 +08:00
1 parent b7d5ce3a5e
commit 200da757d7
5 files changed
+56 -55

No files matched your search

+8 -40
View File
@@ -9,34 +9,17 @@ Monitor::Monitor(QWidget *parent) :
ui(new Ui::Monitor)
{
ui->setupUi(this);
QObject::connect(ui->downStairButton, &QPushButton::clicked, [&]() {
if (m_currentFloor > 0) {
m_currentFloor -= 1;
showParkinglot();
}
if (m_currentFloor == 0)
ui->downStairButton->setEnabled(false);
if (m_currentFloor == m_parkinglots.size() - 2)
ui->upStairButton->setEnabled(true);
});
QObject::connect(ui->upStairButton, &QPushButton::clicked, [&]() {
if (m_currentFloor < m_parkinglots.size() - 1) {
m_currentFloor += 1;
showParkinglot();
}
if (m_currentFloor == m_parkinglots.size() - 1)
ui->upStairButton->setEnabled(false);
if (m_currentFloor == 1)
ui->downStairButton->setEnabled(true);
});
if (m_currentFloor == 0) // 如果默认楼层就是顶层或者最下一层,把相应的按钮disable
ui->downStairButton->setEnabled(false);
else if (m_currentFloor == m_parkinglots.size() - 1)
ui->upStairButton->setEnabled(false);
ParkingLotItem *pk = new ParkingLotItem(Q_NULLPTR, this);
QObject::connect(ui->downStairButton, &QPushButton::clicked, pk, &ParkingLotItem::showDownStairFloor);
QObject::connect(ui->upStairButton, &QPushButton::clicked, pk, &ParkingLotItem::showUpStairFloor);
QObject::connect(pk, &ParkingLotItem::enableUpButton, ui->upStairButton, &QPushButton::setEnabled);
QObject::connect(pk, &ParkingLotItem::enableDownButton, ui->downStairButton, &QPushButton::setEnabled);
QObject::connect(pk, &ParkingLotItem::setCapacity, ui->capacity, &QLabel::setText);
QObject::connect(pk, &ParkingLotItem::setLoad, ui->load, &QLabel::setText);
pk->showParkingLot();
QGraphicsScene *scene = new QGraphicsScene(this); // 创建场景
ui->view->setScene(scene);
ParkingLotItem *pk = new ParkingLotItem(Q_NULLPTR);
scene->addItem(pk);
}
@@ -44,18 +27,3 @@ Monitor::~Monitor()
{
delete ui;
}
void Monitor::showParkinglot()
{
if (m_parkinglots.at(m_currentFloor) == nullptr) {
m_parkinglots[m_currentFloor] = new ParkingLotWidget(this, m_xmlPath.at(m_currentFloor)); // lazy
// ui->parkinglotView->addWidget(m_parkinglots.at(m_currentFloor)); // 把当前对象添加进layout
m_parkinglots[m_currentFloor]->move(10, 10);
}
ui->currentFloor->setText("<center>" + m_parkinglots.at(m_currentFloor)->getName() + "</center>"); // 文字
for (auto p = m_parkinglots.begin(); p != m_parkinglots.end(); p++)
if (*p != nullptr)
(*p)->hide();
m_parkinglots.at(m_currentFloor)->show();
}