添加了停止公交车效果

This commit is contained in:
jackfiled 2022-06-29 12:14:38 +08:00
parent 1a0c65383b
commit 79c3318faa
7 changed files with 57 additions and 2 deletions

View File

@ -29,6 +29,8 @@ public:
*/ */
void SetStopScene(int node_number); void SetStopScene(int node_number);
void ResetBus();
/** /**
* *
* @param direction * @param direction

View File

@ -96,7 +96,10 @@ void BusStrategyBase::GetBusDirectionSlot()
break; break;
} }
emit BusRunningSignal(bus_model->direction, duration); if(status == BUS_RUNNING)
{
emit BusRunningSignal(bus_model->direction, duration);
}
} }
void BusStrategyBase::HandleQuery() void BusStrategyBase::HandleQuery()

View File

@ -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;

View File

@ -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()
{ {
// 设置添加请求事件的连接 // 设置添加请求事件的连接

View File

@ -44,6 +44,11 @@ public:
*/ */
void SetStrategyLabel(int strategy); void SetStrategyLabel(int strategy);
/**
*
*/
void ResetOutput();
signals: signals:
/** /**
* *

View File

@ -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()
{ {
// 从画布中移除所有的站点图片 // 从画布中移除所有的站点图片

View File

@ -127,11 +127,19 @@ void MainWindow::ReadConfigFileButtonClicked()
void MainWindow::RunBusClicked() void MainWindow::RunBusClicked()
{ {
emit RunBusSignal(); if (controller == nullptr)
{
QMessageBox::warning(this, "警告", "未读取配置文件");
}
else
{
emit RunBusSignal();
}
} }
void MainWindow::StopBusClicked() void MainWindow::StopBusClicked()
{ {
central_widget->ResetOutput();
emit StopBusSignal(); emit StopBusSignal();
} }