diff --git a/car.cpp b/car.cpp index 492119d..0252cc3 100644 --- a/car.cpp +++ b/car.cpp @@ -10,6 +10,7 @@ Car::Car(ParkingLotManager * manager, QGraphicsItem *parent, int dir, Car::Color m_target(PathPoint(this->pos(),this->rotation())), m_current(PathPoint(this->pos(),this->rotation())) { + m_manager = manager; m_pos = this->pos(); this->setRotation(dir); if(color==RANDOM) @@ -185,7 +186,7 @@ QString Car::getPosition() const } else if (m_status == waiting) { return "正在等候"; } else { - return QString("%1层%2号").arg(targetFloor).arg(num); + return QString("%1%2号").arg(m_manager->getParkingLotName(currentFloor)).arg(num); } } diff --git a/car.h b/car.h index 8798f13..58cc264 100644 --- a/car.h +++ b/car.h @@ -83,6 +83,7 @@ private: int currentFloor; int num; QTime startTime; + ParkingLotManager* m_manager; signals: void entry(Car* car); void stair(Car* car); diff --git a/parkingLotManager.cpp b/parkingLotManager.cpp index 05f08d8..8174bc9 100644 --- a/parkingLotManager.cpp +++ b/parkingLotManager.cpp @@ -136,6 +136,11 @@ void ParkingLotManager::drawPath(int n1, int n2) } } +QString ParkingLotManager::getParkingLotName(int pos) +{ + return m_widgets.at(pos)->getName(); +} + void ParkingLotManager::requestOut(Car *car, int exit) { if (exit == -1) diff --git a/parkingLotManager.h b/parkingLotManager.h index 85d533b..34e0119 100644 --- a/parkingLotManager.h +++ b/parkingLotManager.h @@ -31,6 +31,8 @@ public: void showUpStairFloor(void); void drawPath(int n1, int n2); + QString getParkingLotName(int pos); + public slots: void requestIn(Car* car); void requestOut(Car* car, int exit = -1);