DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAPyDataFrameTableModel类 参考

针对DAPyDataFrame的table model 更多...

#include <DAPyDataFrameTableModel.h>

类 DA::DAPyDataFrameTableModel 继承关系图:
DA::DAAbstractCacheWindowTableModel DA::DAPyGridDataTableModel

class  PrivateData
 

信号

void currentPageChanged (int newPage)
 

Public 成员函数

 DAPyDataFrameTableModel (QUndoStack *stack, QObject *parent=nullptr)
 
virtual int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
virtual QVariant actualHeaderData (int actualSection, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
virtual int actualRowCount () const override
 
virtual QVariant actualData (int actualRow, int actualColumn, int role=Qt::DisplayRole) const override
 
virtual bool setActualData (int actualRow, int actualColumn, const QVariant &value, int role=Qt::EditRole) override
 
DAPyDataFramedataFrame ()
 
const DAPyDataFramedataFrame () const
 
void setDAData (const DAData &d)
 
void setDataFrame (const DAPyDataFrame &d)
 
void setUseCacheMode (bool on=true)
 
virtual void setCacheWindowStartRow (int startRow) override
 设置滑动窗模式的起始行
 
void refreshData ()
 全部刷新
 
void setExtraRowCount (int v)
 设置超出模型实际数据行数的额外空行数量。
 
int getExtraRowCount () const
 超出模型实际数据行数的额外空行数量
 
void setExtraColumnCount (int v)
 设置超出模型实际数据列数的额外空列数量。
 
int getExtraColumnCount () const
 超出模型实际数据列数的额外空列数量
 
void setMinShowRowCount (int v)
 
int getMinShowRowCount () const
 
void setMinShowColumnCount (int v)
 
int getMinShowColumnCount () const
 
- Public 成员函数 继承自 DA::DAAbstractCacheWindowTableModel
 DAAbstractCacheWindowTableModel (QObject *parent=nullptr)
 
int getCacheWindowStartRow () const
 
void setCacheWindowSize (int s)
 
int getCacheWindowSize () const
 
virtual Qt::ItemFlags flags (const QModelIndex &index) const override
 
virtual int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
virtual QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
virtual QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
virtual bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
virtual Qt::ItemFlags actualFlags (int actualRow, int actualColumn) const
 
void notifyRowChanged (int row)
 
void notifyColumnChanged (int col)
 
void notifyDataChanged (int row, int col)
 
void notifyDataChanged (int rowStart, int colStart, int rowEnd, int colEnd)
 
void notifyRowsRemoved (const QList< int > &r)
 
void notifyRowsInserted (const QList< int > &r)
 
void notifyColumnsRemoved (const QList< int > &c)
 
void notifyColumnsInserted (const QList< int > &c)
 

Protected 成员函数

void cacheShape () override
 缓存尺寸相关的信息
 
void cacheRowShape ()
 
void cacheColumnShape ()
 

额外继承的成员函数

- Protected 属性 继承自 DA::DAAbstractCacheWindowTableModel
int mCacheWindowSize { 20000 }
 
int mWindowStartRow { 0 }
 

详细描述

针对DAPyDataFrame的table model

注解
QTableView有个bug,在面对超大规模的数据时,会出现遍历所有行的headerData情况,导致非常耗时,同时QHeaderView也有这个问题,在选中一列时, 要遍历这一列所有行的headerData,调试发现会大量调用columnCount,并不能实现真正的虚拟显示,因此,TableModel的实现,将数据进行缓存, 让数据在一个固定的区间里面刷新,从而解决这个问题。

成员函数说明

◆ actualData()

QVariant DA::DAPyDataFrameTableModel::actualData ( int  actualRow,
int  actualColumn,
int  role = Qt::DisplayRole 
) const
overridevirtual

◆ actualHeaderData()

QVariant DA::DAPyDataFrameTableModel::actualHeaderData ( int  actualSection,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
overridevirtual

◆ actualRowCount()

int DA::DAPyDataFrameTableModel::actualRowCount ( ) const
overridevirtual

◆ cacheShape()

void DA::DAPyDataFrameTableModel::cacheShape ( )
overrideprotectedvirtual

缓存尺寸相关的信息

重载 DA::DAAbstractCacheWindowTableModel .

◆ getExtraColumnCount()

int DA::DAPyDataFrameTableModel::getExtraColumnCount ( ) const

超出模型实际数据列数的额外空列数量

返回
超出模型实际数据列数的额外空列数量
参见
setExtraColumnCount

◆ getExtraRowCount()

int DA::DAPyDataFrameTableModel::getExtraRowCount ( ) const

超出模型实际数据行数的额外空行数量

返回
超出模型实际数据行数的额外空行数量
参见
setExtraRowCount

◆ setActualData()

bool DA::DAPyDataFrameTableModel::setActualData ( int  actualRow,
int  actualColumn,
const QVariant &  value,
int  role = Qt::EditRole 
)
overridevirtual

◆ setCacheWindowStartRow()

void DA::DAPyDataFrameTableModel::setCacheWindowStartRow ( int  startRow)
overridevirtual

设置滑动窗模式的起始行

参数
startRow

重载 DA::DAAbstractCacheWindowTableModel .

◆ setExtraColumnCount()

void DA::DAPyDataFrameTableModel::setExtraColumnCount ( int  v)

设置超出模型实际数据列数的额外空列数量。

该函数用于指定在模型中显示的额外空列数量(n),这些列不包含实际数据, 主要用于提供空间给新的插入操作。例如,如果模型有10列实际数据,并调用 setExtraColumnCount(5),则视图将显示15列,其中最后5列为预留的空列。

参数
n要添加到现有列数上的额外空列数量。n 应为非负整数。
注解
  • 如果 n 设为0,则仅显示模型中的实际数据列。
  • 该函数不会影响模型的实际数据内容,只影响视图中显示的列数。
  • 这些额外的列可以用来方便用户直接在表格末尾进列插入操作。

示例:

// 假设模型中有10列实际数据
model->setExtraRowCount(5); // 视图现在会显示15列,其中最后5列为空列
参见
getExtraRowCount()

◆ setExtraRowCount()

void DA::DAPyDataFrameTableModel::setExtraRowCount ( int  v)

设置超出模型实际数据行数的额外空行数量。

该函数用于指定在模型中显示的额外空行数量(n),这些行不包含实际数据, 主要用于提供空间给新的插入操作。例如,如果模型有100行实际数据,并调用 setExtraRowCount(5),则视图将显示105行,其中最后5行为预留的空行。

参数
n要添加到现有行数上的额外空行数量。n 应为非负整数。
注解
  • 如果 n 设为0,则仅显示模型中的实际数据行。
  • 该函数不会影响模型的实际数据内容,只影响视图中显示的行数。
  • 这些额外的行可以用来方便用户直接在表格末尾进行插入操作。

示例:

// 假设模型中有100行实际数据
model->setExtraRowCount(5); // 视图现在会显示105行,其中最后5行为空行
参见
getExtraRowCount

该类的文档由以下文件生成: