完善了请求列表的相关槽函数

This commit is contained in:
jackfiled 2022-06-26 12:09:19 +08:00
parent 7cbdf5963e
commit a044ff1044
4 changed files with 213 additions and 26 deletions

View File

@ -15,10 +15,66 @@ CentralWidget::CentralWidget(QWidget *parent) : QWidget(parent), ui(new Ui::Cent
scene_manager = new SceneManager(20); scene_manager = new SceneManager(20);
ui->main_canva->setScene(scene_manager->scene); ui->main_canva->setScene(scene_manager->scene);
SetupQueryList();
} }
CentralWidget::~CentralWidget() CentralWidget::~CentralWidget()
{ {
DeleteQueryList();
delete scene_manager; delete scene_manager;
delete ui; delete ui;
} }
void CentralWidget::SetupQueryList()
{
// 设置请求列表的表头
QueryListItem *column_name = new QueryListItem(1,1);
column_name->SetColumnName();
query_items.push_back(column_name);
// 在列表中显示
QListWidgetItem *widget_item = new QListWidgetItem;
ui->query_list->addItem(widget_item);
ui->query_list->setItemWidget(widget_item, column_name);
}
void CentralWidget::DeleteQueryList()
{
for(auto itor = query_items.begin(); itor != query_items.end(); ++itor)
{
delete *itor;
}
query_items.clear();
}
void CentralWidget::AppendQueryItem(int query_type, int node_id)
{
QueryListItem *item = new QueryListItem(query_type, node_id);
query_items.push_back(item);
// 在列表中显示
QListWidgetItem *widget_item = new QListWidgetItem;
ui->query_list->addItem(widget_item);
ui->query_list->setItemWidget(widget_item, item);
}
void CentralWidget::DeleteQueryItem(int query_id)
{
// 由于表头的存在且请求的编号从1开始请求的编号恰好就是请求在列表中的位置
QListWidgetItem *deleted_widget = ui->query_list->takeItem(query_id);
auto itor = query_items.begin();
for(int i = 0; i < query_id; i++)
{
++itor;
}
delete deleted_widget;
delete *itor;
query_items.erase(itor);
}

View File

@ -29,32 +29,6 @@
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>659</x>
<y>-1</y>
<width>201</width>
<height>411</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="test_button">
<property name="text">
<string>测试输出</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>控制面板</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QTextEdit" name="text_output"> <widget class="QTextEdit" name="text_output">
<property name="geometry"> <property name="geometry">
<rect> <rect>
@ -78,6 +52,105 @@
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>770</x>
<y>160</y>
<width>121</width>
<height>231</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>添加请求</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>请求类型</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="query_type_combo">
<item>
<property name="text">
<string>顺时针上车</string>
</property>
</item>
<item>
<property name="text">
<string>逆时针上车</string>
</property>
</item>
<item>
<property name="text">
<string>下车</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>目标站点</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="query_node_combo"/>
</item>
<item>
<widget class="QPushButton" name="create_query_button">
<property name="text">
<string>创建请求</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>600</x>
<y>170</y>
<width>161</width>
<height>221</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>请求列表</string>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="query_list"/>
</item>
</layout>
</widget>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -41,7 +41,16 @@
<addaction name="actionRead_ConfigFile"/> <addaction name="actionRead_ConfigFile"/>
<addaction name="actionExit"/> <addaction name="actionExit"/>
</widget> </widget>
<widget class="QMenu" name="menuRun">
<property name="title">
<string>Run</string>
</property>
<addaction name="actionRun_Bus"/>
<addaction name="actionPause_Bus"/>
<addaction name="actionStop_Bus"/>
</widget>
<addaction name="menuFile"/> <addaction name="menuFile"/>
<addaction name="menuRun"/>
</widget> </widget>
<action name="actionRead_ConfigFile"> <action name="actionRead_ConfigFile">
<property name="text"> <property name="text">
@ -53,6 +62,21 @@
<string>Exit</string> <string>Exit</string>
</property> </property>
</action> </action>
<action name="actionRun_Bus">
<property name="text">
<string>Run Bus</string>
</property>
</action>
<action name="actionPause_Bus">
<property name="text">
<string>Pause Bus</string>
</property>
</action>
<action name="actionStop_Bus">
<property name="text">
<string>Stop Bus</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -6,8 +6,12 @@
#define AUTO_BUS_GUI_CENTRAL_WIDGET_H #define AUTO_BUS_GUI_CENTRAL_WIDGET_H
#include <QWidget> #include <QWidget>
#include "QListWidgetItem"
#include "string" #include "string"
#include "list"
#include "mainScene.h" #include "mainScene.h"
#include "queryListItem.h"
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui namespace Ui
@ -26,11 +30,41 @@ public:
~CentralWidget() override; ~CentralWidget() override;
public slots: public slots:
/**
*
* @param query_type
* @param node_id id
*/
void AppendQueryItem(int query_type, int node_id);
void DeleteQueryItem(int query_id);
private: private:
/**
* UI控件
*/
Ui::CentralWidget *ui; Ui::CentralWidget *ui;
/**
*
*/
SceneManager *scene_manager; SceneManager *scene_manager;
/**
*
*/
std::list<QueryListItem *> query_items;
/**
*
*
*/
void SetupQueryList();
/**
*
*/
void DeleteQueryList();
}; };