DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAVariantTableModel.h
1#ifndef DAVARIANTTABLEMODEL_H
2#define DAVARIANTTABLEMODEL_H
3#include "DAGuiAPI.h"
4#include "DATable.hpp"
5#include <QAbstractTableModel>
6#include <functional>
7class QUndoStack;
8namespace DA
9{
15class DAGUI_API DAVariantTableModel : public QAbstractTableModel
16{
17 Q_OBJECT
18 DA_DECLARE_PRIVATE(DAVariantTableModel)
20
21public:
22 using FpToDisplayString = std::function< QString(const QVariant& v) >;
23
24public:
25 DAVariantTableModel(QObject* p = nullptr);
26 DAVariantTableModel(DATable< QVariant >* d, QObject* p = nullptr);
28 QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
29 int columnCount(const QModelIndex& parent = QModelIndex()) const override;
30 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
31 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
32 virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
33 Qt::ItemFlags flags(const QModelIndex& index) const override;
34 // 更新表格
35 void update();
36 // 设置是否可编辑
37 void setEnableEdit(bool on = true);
38 // 获取UndoStack
39 QUndoStack* getUndoStack() const;
40 // 设置table
41 void setTable(DATable< QVariant >* t);
42 DATable< QVariant >* getTable() const;
43 // 清空表格
44 void clearTable();
45 // 注册显示函数,把QVariant转换为文本显示出来
46 void registDisplayFun(FpToDisplayString fp);
47 // 设置表头
48 void setHeader(const QStringList& h);
49public slots:
50 void redo();
51 void undo();
52
53public:
54 void setTableData(int row, int col, const QVariant& v);
55 QVariant getTableData(int row, int col) const;
56 void removeTableCell(int row, int col);
57};
58}
59
60#endif // DAVARIANTTABLEMODEL_H
支持稀疏存储和各种算法的表格类
Definition DATable.hpp:26
Definition DAVariantTableModel.cpp:31
对DATable<QVariant>显示的的model
Definition DAVariantTableModel.h:16
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44