DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DADataOperateWidget.h
1#ifndef DADATAOPERATEWIDGET_H
2#define DADATAOPERATEWIDGET_H
3#include <QWidget>
4#include <QMap>
5#include "DAGuiAPI.h"
6#include "DAAbstractOperateWidget.h"
7#include "DAData.h"
8
9#include "DADataManager.h"
10class QUndoStack;
11namespace Ui
12{
13class DADataOperateWidget;
14}
15namespace DA
16{
17class DADataOperatePageWidget;
18class DADataOperateOfDataFrameWidget;
19class DADataManager;
24{
25 Q_OBJECT
26 DA_DECLARE_PRIVATE(DADataOperateWidget)
27public:
28 DADataOperateWidget(DADataManager* mgr, QWidget* parent = nullptr);
29 DADataOperateWidget(QWidget* parent = nullptr);
31
32 //
33 void setDataManager(DADataManager* mgr);
34 DADataManager* getDataManger() const;
35 // 当前显示的窗口
36 QWidget* currentWidget() const;
37
38 // 当前显示的DataFrame窗口,如果不是DataFrame窗口,返回nullptr
39 DADataOperateOfDataFrameWidget* getCurrentDataFrameWidget() const;
40 // 获取当前操作的表,这个表就是当前打开的表格
41 DAData getCurrentOperateData() const;
42 // 获取当前正在操作数据选中的列
43 QList< int > getCurrentOperateDataSelectedColumns() const;
44 // getCurrentOperateData和getCurrentOperateDataSelectedColumns的组合
45 std::pair< DAData, QList< int > > getCurrentOperateDataInfo() const;
46 // 获取QUndoStack
47 QUndoStack* getUndoStack() override;
48 // 刷新当前操作窗口的表格,这个一般是删除数据或数据变更后调用
49 void refreshCurrentOperateTableView();
50 // 确保当前窗口的列名可见,可搭配showData函数后使用
51 void ensureCurrentTableColumnVisible(const QString& colName, bool selectCol = true);
52public Q_SLOTS:
53 // 显示一个数据
54 void showData(const DA::DAData& d);
55 // 删除tab窗口,同时删除tab标签和上次tab对应的widget
56 bool removeTabWidget(QWidget* w);
57 // 清除操作
58 void clear();
59Q_SIGNALS:
76private Q_SLOTS:
77 // 数据删除对应的槽
78 void onDataRemoved(const DA::DAData& d, int index);
79 // 数据删除对应的槽
80 void onDataChanged(const DA::DAData& d, DADataManager::ChangeType t);
81 // tab标签切换
82 void onTabWidgetCurrentChanged(int index);
83 // tab关闭请求
84 void onTabWidgetCloseRequested(int index);
85
86private:
87 void showDataframeData(const DA::DAData& d);
88 void init();
89
90private:
91 Ui::DADataOperateWidget* ui;
92};
93} // end of namespace DA
94#endif // DADATAOPERATEWIDGET_H
操作窗口的基类
Definition DAAbstractOperateWidget.h:12
DAData的数据管理类,实现数据操作的一些通知例如数据添加、删除、改名、内容改变等等
Definition DADataManager.h:18
ChangeType
改变类型
Definition DADataManager.h:28
针对DataFrame的操作窗口
Definition DADataOperateOfDataFrameWidget.h:34
数据操作的基类窗口,所有数据操作页面继承此窗口方便管理
Definition DADataOperatePageWidget.h:12
数据操作窗口,负责数据区域操作
Definition DADataOperateWidget.h:24
void currentDataTableWidgetChanged(DA::DADataOperatePageWidget *page, int index)
当前的页面发生了改变
void dataTableCreated(DA::DADataOperatePageWidget *page)
数据操作页面添加信号
void dataTableRemoving(DA::DADataOperatePageWidget *page)
页面删除,此时可以操作此指针,此信号之后指针销毁
DAAbstractData的封装 可以放入QMap,QHash中,DAData的等于操作相当于创建一个引用
Definition DAData.h:25
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44