🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
EditFigureDialog.hpp
浏览该文件的文档.
1
8#pragma once
9
10#include "AstGlobal.h"
11#include <QDialog>
12#include <QTreeWidget>
13#include <QStackedWidget>
14#include <QPushButton>
15#include <QDialogButtonBox>
16#include <QIcon>
17
18namespace matplot {
19 class figure_type;
20 class axes_type;
21 class axes_object;
22}
23
24AST_NAMESPACE_BEGIN
25
26class AxesPropertyPage;
27class LinePropertyPage;
28class SurfacePropertyPage;
29
30class AST_CHART_API EditFigureDialog : public QDialog {
31 Q_OBJECT
32public:
33 explicit EditFigureDialog(matplot::figure_type* figure, QWidget* parent = nullptr);
34 EditFigureDialog(const EditFigureDialog&) = delete;
35 EditFigureDialog& operator=(const EditFigureDialog&) = delete;
36
37 void selectPlotItem(int axesIndex, int itemIndex);
38
39private slots:
40 void onTreeSelectionChanged();
41 void onApply();
42
43private:
44 void setupUi();
45 void buildTree();
46 QIcon loadIcon(const QString& name) const;
47
48 enum NodeType { TypeFigure, TypeAxes, TypePlotItem };
49 enum DataRole { TypeRole = Qt::UserRole, AxesIndexRole = Qt::UserRole + 1, ItemIndexRole = Qt::UserRole + 2 };
50
51 matplot::figure_type* figure_{};
52 QTreeWidget* tree_{};
53 QStackedWidget* stack_{};
54 AxesPropertyPage* axesPage_{};
55 LinePropertyPage* linePage_{};
56 SurfacePropertyPage* surfacePage_{};
57 QWidget* placeholder_{};
58 QPushButton* applyBtn_{};
59};
60
61AST_NAMESPACE_END
坐标轴属性编辑页
定义 PropertyPages.hpp:45
定义 EditFigureDialog.hpp:30
折线/散点属性编辑页
定义 PropertyPages.hpp:78
曲面属性编辑页
定义 PropertyPages.hpp:101