update panel

This commit is contained in:
codeboss 2025-07-06 11:58:26 +08:00
parent f329cfa7dc
commit b560d9fe39
8 changed files with 109 additions and 45 deletions

View File

@ -0,0 +1,32 @@
#include "ActionNodeConfiguration.h"
#include <QGridLayout>
ActionNodeConfiguration::ActionNodeConfiguration(QWidget* p)
:QFrame(p),
_execute_select(new QComboBox(this)),
_variables_input(new QTableView(this)),
_input_model(new QStandardItemModel(this)),
_variables_output(new QTableView(this)),
_output_model(new QStandardItemModel(this))
{
this->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
auto p_layout = new QGridLayout(this);
p_layout->addWidget(new QLabel(u8"执行器类型:", this));
p_layout->addWidget(_execute_select, 0, 1, 1, 4);
auto vars_tabw = new QTabWidget(this);
p_layout->addWidget(vars_tabw, 1, 0, 3, 5);
vars_tabw->setTabPosition(QTabWidget::West);
vars_tabw->addTab(_variables_input, u8"输入变量");
_variables_input->setModel(_input_model);
vars_tabw->addTab(_variables_output, u8"输出变量");
_variables_output->setModel(_output_model);
p_layout->setColumnStretch(1, 1);
_input_model->setHorizontalHeaderLabels(QStringList()
<< u8"变量名" << u8"变量类型" << u8"关联变量序列" << u8"关联转换器类型");
_output_model->setHorizontalHeaderLabels(QStringList()
<< u8"变量名" << u8"变量类型" << u8"关联变量序列" << u8"关联转换器类型");
}

View File

@ -0,0 +1,21 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QComboBox>
#include <QTabWidget>
#include <QTableView>
#include <qstandarditemmodel.h>
class ActionNodeConfiguration : public QFrame
{
private:
QComboBox *const _execute_select;
QTableView* const _variables_input;
QStandardItemModel *const _input_model;
QTableView* const _variables_output;
QStandardItemModel* const _output_model;
public:
ActionNodeConfiguration(QWidget *p = nullptr);
};

View File

@ -454,20 +454,6 @@ void BehaviorEditor::new_behavior_map()
#include <QLabel>
#include <QGridLayout>
#include <QComboBox>
QWidget* BehaviorEditor::newModifyNodeConfigration(QWidget* pwidget)
{
auto panel = new QFrame(this);
panel->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
auto p_layout = new QGridLayout(panel);
p_layout->addWidget(new QLabel(u8"修饰类型:", this));
p_layout->addWidget(new QComboBox(this), 0, 1, 1, 3);
p_layout->addWidget(new QWidget(this), 1, 0, 1, 4);
p_layout->setRowStretch(1, 1);
p_layout->setColumnStretch(1, 1);
return panel;
}
BehaviorEditor::BehaviorEditor(QWidget* parent /*= nullptr*/)
: QMainWindow(parent),
@ -479,7 +465,9 @@ BehaviorEditor::BehaviorEditor(QWidget* parent /*= nullptr*/)
_logs_present(new QTextBrowser(this)),
_map_configuration(new BehaviorMapConfigurationPanel(this)),
_compare_configuration(new CompareNodeConfiguration(this)),
_default_configuration(new QLabel(u8"该节点无需配置", this))
_default_configuration(new QLabel(u8"该节点无需配置", this)),
_action_configuration(new ActionNodeConfiguration(this)),
_modify_configuration(new ModifyNodeConfiguration(this))
{
_global_loader = std::make_shared<MessageLoader>();
_global_kernal = std::make_shared<MapKernel>(_global_loader);
@ -518,9 +506,9 @@ BehaviorEditor::BehaviorEditor(QWidget* parent /*= nullptr*/)
// 下方堆叠面板
_message_panel->addTab(_logs_present, u8"控制台");
_message_panel->addTab(_stacked_panel, u8"属性配置");
_stacked_panel->addWidget(_modify_configuration);
_stacked_panel->addWidget(_action_configuration);
_stacked_panel->addWidget(_compare_configuration);
_stacked_panel->addWidget(newModifyNodeConfigration(this));
_stacked_panel->addWidget(newActionNodeConfigration(this));
_stacked_panel->addWidget(_map_configuration);
_stacked_panel->addWidget(_default_configuration);
}
@ -542,28 +530,6 @@ void BehaviorEditor::nodeTypesViewInit(QStandardItemModel* m)
#include <QComboBox>
#include <QPushButton>
QWidget* BehaviorEditor::newActionNodeConfigration(QWidget* pwidget)
{
auto panel = new QFrame(this);
panel->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
auto p_layout = new QGridLayout(panel);
p_layout->addWidget(new QLabel(u8"执行器类型:", this));
p_layout->addWidget(new QComboBox(this), 0, 1, 1, 4);
auto vars_tabw = new QTabWidget(this);
p_layout->addWidget(vars_tabw, 1, 0, 3, 5);
vars_tabw->setTabPosition(QTabWidget::West);
vars_tabw->addTab(new QTableView(this), u8"输入变量");
vars_tabw->addTab(new QTableView(this), u8"输出变量");
p_layout->setColumnStretch(1, 1);
return panel;
}
NodeTypesView::NodeTypesView(QWidget* parent /*= nullptr*/)
: QListView(parent)
{

View File

@ -150,6 +150,8 @@ protected:
#include <QLabel>
#include "BehaviorConfigurationPanel.h"
#include "CompareNodeConfiguration.h"
#include "ActionNodeConfiguration.h"
#include "ModifyNodeConfiguration.h"
/// <summary>
/// ÐÐΪÊ÷½Úµã±à¼­Æ÷
@ -166,6 +168,8 @@ private:
QStackedWidget *const _stacked_panel;
BehaviorMapConfigurationPanel *const _map_configuration;
CompareNodeConfiguration *const _compare_configuration;
ActionNodeConfiguration *const _action_configuration;
ModifyNodeConfiguration *const _modify_configuration;
QLabel *const _default_configuration;
std::shared_ptr<BehaviorMapNode> _map_root;
@ -178,13 +182,7 @@ private:
// ==============================================
QTextBrowser* const _logs_present;
// ==============================================
QWidget* newActionNodeConfigration(QWidget* pwidget);
// ==============================================
QWidget* newModifyNodeConfigration(QWidget* pwidget);
public:
BehaviorEditor(QWidget* parent = nullptr);

View File

@ -0,0 +1,17 @@
#include "ModifyNodeConfiguration.h"
#include <qgridlayout.h>
ModifyNodeConfiguration::ModifyNodeConfiguration(QWidget* p)
: QFrame(p),
_modify_types(new QComboBox(this))
{
this->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
auto p_layout = new QGridLayout(this);
p_layout->addWidget(new QLabel(u8"ÐÞÊÎÀàÐÍ£º", this));
p_layout->addWidget(_modify_types, 0, 1, 1, 3);
p_layout->addWidget(new QWidget(this), 1, 0, 1, 4);
p_layout->setRowStretch(1, 1);
p_layout->setColumnStretch(1, 1);
}

View File

@ -0,0 +1,14 @@
#pragma once
#include <qframe.h>
#include <qlabel.h>
#include <qcombobox.h>
class ModifyNodeConfiguration : public QFrame
{
private:
QComboBox *const _modify_types;
public:
ModifyNodeConfiguration(QWidget *p = nullptr);
};

View File

@ -99,9 +99,11 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ActionNodeConfiguration.cpp" />
<ClCompile Include="BehaviorConfigurationPanel.cpp" />
<ClCompile Include="BehaviorEditor.cpp" />
<ClCompile Include="CompareNodeConfiguration.cpp" />
<ClCompile Include="ModifyNodeConfiguration.cpp" />
<ClCompile Include="PerspectiveView.cpp" />
<ClCompile Include="TempletAssemble.cpp" />
<QtRcc Include="sims_world.qrc" />
@ -119,7 +121,9 @@
<QtMoc Include="PerspectiveView.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="ActionNodeConfiguration.h" />
<ClInclude Include="CompareNodeConfiguration.h" />
<ClInclude Include="ModifyNodeConfiguration.h" />
<QtMoc Include="BehaviorConfigurationPanel.h" />
<ClInclude Include="BehaviorEditor.h" />
</ItemGroup>

View File

@ -61,6 +61,12 @@
<ClCompile Include="CompareNodeConfiguration.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ActionNodeConfiguration.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ModifyNodeConfiguration.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="TempletAssemble.h">
@ -80,5 +86,11 @@
<ClInclude Include="CompareNodeConfiguration.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ActionNodeConfiguration.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ModifyNodeConfiguration.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>