🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiNewObjectDialog.hpp
浏览该文件的文档.
1
21
22#pragma once
23
24#include "AstGlobal.h"
25#include <QDialog>
26#include <QListWidget>
27#include <QLineEdit>
28#include <QLabel>
29#include <QPushButton>
30#include <vector>
31#include <string>
32
33AST_NAMESPACE_BEGIN
34
35class Class;
36
40class AST_GUI_API UiNewObjectDialog : public QDialog
41{
42 Q_OBJECT
43
44public:
45 explicit UiNewObjectDialog(QWidget* parent = nullptr);
46 ~UiNewObjectDialog() override;
47 UiNewObjectDialog(const UiNewObjectDialog&) = delete;
48 UiNewObjectDialog& operator=(const UiNewObjectDialog&) = delete;
49
51 QString selectedTypeName() const;
52
54 QString objectName() const;
55
56private:
57 void setupUi();
58 void populateTypeList(const QString& filter = QString());
59 void updateDescription();
60 QString generateUniqueName(const QString& typeName) const;
61
62 struct ClassInfo
63 {
64 std::string name{};
65 std::string desc{};
66 Class* cls{};
67 };
68
69 std::vector<ClassInfo> allClasses_{};
70 mutable QString generatedName_{};
71
72 QLineEdit* searchEdit_ = nullptr;
73 QListWidget* typeList_ = nullptr;
74 QLabel* descLabel_ = nullptr;
75 QPushButton* okButton_ = nullptr;
76 QPushButton* cancelButton_ = nullptr;
77};
78
79AST_NAMESPACE_END
类元信息
定义 Class.hpp:40
新建对象对话框
定义 UiNewObjectDialog.hpp:41