添加了停止公交车效果
This commit is contained in:
		@@ -29,6 +29,8 @@ public:
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    void SetStopScene(int node_number);
 | 
					    void SetStopScene(int node_number);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void ResetBus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 开始公交车动画
 | 
					     * 开始公交车动画
 | 
				
			||||||
     * @param direction 公交车前进的方向
 | 
					     * @param direction 公交车前进的方向
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -96,8 +96,11 @@ void BusStrategyBase::GetBusDirectionSlot()
 | 
				
			|||||||
            break;
 | 
					            break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(status == BUS_RUNNING)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
        emit BusRunningSignal(bus_model->direction, duration);
 | 
					        emit BusRunningSignal(bus_model->direction, duration);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void BusStrategyBase::HandleQuery()
 | 
					void BusStrategyBase::HandleQuery()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,9 @@ BusWidget::~BusWidget()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void BusWidget::ResetBusPos(PosPair *s, int num)
 | 
					void BusWidget::ResetBusPos(PosPair *s, int num)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    // 先停止一下动画
 | 
				
			||||||
 | 
					    animation->stop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pos_pairs = s;
 | 
					    pos_pairs = s;
 | 
				
			||||||
    pos = 0;
 | 
					    pos = 0;
 | 
				
			||||||
    node_num = num;
 | 
					    node_num = num;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,6 +56,34 @@ void CentralWidget::SetStrategyLabel(int strategy)
 | 
				
			|||||||
    ui->strategy_label->setText(name);
 | 
					    ui->strategy_label->setText(name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CentralWidget::ResetOutput()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // 清除日志输出
 | 
				
			||||||
 | 
					    ui->text_output->clear();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 重设公交车位置
 | 
				
			||||||
 | 
					    scene_manager->ResetBus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 删除请求列表的所有元素
 | 
				
			||||||
 | 
					    auto first_item = query_items.begin();
 | 
				
			||||||
 | 
					    int query_id = 1;
 | 
				
			||||||
 | 
					    first_item++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for(auto itor = first_item; itor != query_items.end(); itor++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QListWidgetItem *deleted_item = ui->query_list->takeItem(query_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        delete deleted_item;
 | 
				
			||||||
 | 
					        delete *itor;
 | 
				
			||||||
 | 
					        query_id++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 保留第一个的表头指针
 | 
				
			||||||
 | 
					    QueryListItem *column_name = query_items.front();
 | 
				
			||||||
 | 
					    query_items.clear();
 | 
				
			||||||
 | 
					    query_items.push_back(column_name);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CentralWidget::SetControlConnection()
 | 
					void CentralWidget::SetControlConnection()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    // 设置添加请求事件的连接
 | 
					    // 设置添加请求事件的连接
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,6 +44,11 @@ public:
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    void SetStrategyLabel(int strategy);
 | 
					    void SetStrategyLabel(int strategy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 清除输出信息
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void ResetOutput();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
signals:
 | 
					signals:
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 添加一个请求的信号
 | 
					     * 添加一个请求的信号
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,6 +77,12 @@ void SceneManager::SetStopScene(int node_number)
 | 
				
			|||||||
    scene->addItem(bus->item);
 | 
					    scene->addItem(bus->item);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SceneManager::ResetBus()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bus->ResetBusPos(stop_pos_pairs, stop_node_number);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void SceneManager::ClearStopScene()
 | 
					void SceneManager::ClearStopScene()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    // 从画布中移除所有的站点图片
 | 
					    // 从画布中移除所有的站点图片
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -126,12 +126,20 @@ void MainWindow::ReadConfigFileButtonClicked()
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::RunBusClicked()
 | 
					void MainWindow::RunBusClicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (controller == nullptr)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QMessageBox::warning(this, "警告", "未读取配置文件");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        emit RunBusSignal();
 | 
					        emit RunBusSignal();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MainWindow::StopBusClicked()
 | 
					void MainWindow::StopBusClicked()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    central_widget->ResetOutput();
 | 
				
			||||||
    emit StopBusSignal();
 | 
					    emit StopBusSignal();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user