DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAPyDataFrameTableModel.h
1#ifndef DAPYDATAFRAMETABLEMODEL_H
2#define DAPYDATAFRAMETABLEMODEL_H
3#include "DAGuiAPI.h"
4#include <QtCore/qglobal.h>
5#include <QAbstractTableModel>
6#include "DAAbstractCacheWindowTableModel.h"
7#include "pandas/DAPyDataFrame.h"
8#include "DAData.h"
9#include <functional>
10class QUndoStack;
11namespace DA
12{
13
22{
23 Q_OBJECT
24 DA_DECLARE_PRIVATE(DAPyDataFrameTableModel)
25public:
26 DAPyDataFrameTableModel(QUndoStack* stack, QObject* parent = nullptr);
28
29public:
30 virtual int columnCount(const QModelIndex& parent = QModelIndex()) const override;
31
32 virtual QVariant actualHeaderData(int actualSection, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
33 virtual int actualRowCount() const override;
34 virtual QVariant actualData(int actualRow, int actualColumn, int role = Qt::DisplayRole) const override;
35 // 设置数据
36 virtual bool setActualData(int actualRow, int actualColumn, const QVariant& value, int role = Qt::EditRole) override;
37
38public:
39 DAPyDataFrame& dataFrame();
40 const DAPyDataFrame& dataFrame() const;
41 // 缓存模式
42 // 设置数据
43 void setDAData(const DAData& d);
44 void setDataFrame(const DAPyDataFrame& d);
45 // 设置使用缓存模式,缓存模式不会频繁调用dataframe,在setdataframe时把常用的参数缓存
46 void setUseCacheMode(bool on = true);
47 // 滑动窗模式
48
49 // 设置滑动窗模式的起始行
50 virtual void setCacheWindowStartRow(int startRow) override;
51
52 // 刷新
53 void refreshData();
54
55 // 超出模型实际数据行数的额外空行数量
56 void setExtraRowCount(int v);
57 int getExtraRowCount() const;
58 // 超出模型实际数据列数的额外空列数量
59 void setExtraColumnCount(int v);
60 int getExtraColumnCount() const;
61 // 最小显示的行数量
62 void setMinShowRowCount(int v);
63 int getMinShowRowCount() const;
64 // 最小显示的列数量
65 void setMinShowColumnCount(int v);
66 int getMinShowColumnCount() const;
67
68protected:
69 // 缓存
70 void cacheShape() override;
71 void cacheRowShape();
72 void cacheColumnShape();
73Q_SIGNALS:
74 void currentPageChanged(int newPage);
75};
76} // end of namespace DA
77#endif // DAPYDATAFRAMETABLEMODEL_H
这是一个有缓存窗的模型,模型的显示行数固定在缓存窗的大小,这个模型适合超多行数据的显示
Definition DAAbstractCacheWindowTableModel.h:16
DAAbstractData的封装 可以放入QMap,QHash中,DAData的等于操作相当于创建一个引用
Definition DAData.h:25
针对DAPyDataFrame的table model
Definition DAPyDataFrameTableModel.h:22
非模板类的DataFrame
Definition DAPyDataFrame.h:19
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44