qt怎么可以随意设置自己想要的表格_QTableView实现表格显示,自定义model

本文展示了如何使用C++的Qt框架创建一个自定义的表格模型CStudioTableModel,该模型用于QTableView,实现了增删改查功能。通过CStudioTableModel类,可以设置表格的行数、列数、表头信息,以及处理数据的显示和编辑。
摘要由CSDN通过智能技术生成

运行结果如下:

代码如下:

#include

#include

#include

class CStudioTableModel :public QAbstractTableModel

{

public:

CStudioTableModel(QObject *parent = 0);

~CStudioTableModel();

int rowCount(const QModelIndex & parent = QModelIndex()) const;

int columnCount(const QModelIndex &parent = QModelIndex()) const;

QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;

QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;

bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole );

void InsertItems(const QList& lstDatas);

void InsertItem(const StudioInfo& dat);

void DelItems();

void DelItem(const QString& szStudioID);

protected:

QStringListm_header;

QList m_lstData;

};

CStudioTableModel::CStudioTableModel(QObject *parent /*= 0*/) :QAbstractTableModel(parent)

{

m_header.clear();

m_header << "ID" << "NAME" << "Age" << "Sex";

Qt中,QTableView是一种用于显示表格数据的控件,而QAbstractTableModelQTableView使用的一种数据模型。如果想要QTableView中展示自定义的数据,需要自定义一个继承自QAbstractTableModel的数据模型。 自定义QAbstractTableModel需要实现以下几个方法: 1. rowCount():返回数据模型中的行数。 2. columnCount():返回数据模型中的列数。 3. data():返回某一项的数据,可以用来在QTableView中展示数据。 4. setData():设置某一项的数据,可以用来在QTableView中编辑数据。 5. headerData():返回行或列的标签,可以用来在QTableView显示表头。 6. flags():返回某一项的标志,用来指定该项是否可编辑、是否可选中等。 自定义QAbstractTableModel类后,可以将其与QTableView关联,通过setModel()方法来设置数据模型,使QTableView显示自定义的数据。 下面是一个简单的自定义QAbstractTableModel的例子: ```c++ class MyTableModel : public QAbstractTableModel { public: MyTableModel(QObject *parent = nullptr); int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; private: QList<QList<QVariant>> m_data; }; ``` 在这个例子中,自定义的数据模型类为MyTableModel,其中实现了rowCount()、columnCount()、data()、setData()、headerData()和flags()方法。m_data变量用于存储数据。自定义的数据模型类可以在需要使用表格数据的地方创建,并通过setModel()方法将其与QTableView关联起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值