QTableView实现表格显示,自定义model

运行结果如下:

代码如下:

#include <QList>
#include <QStringList>
#include <QAbstractTableModel>

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<StudioInfo>& lstDatas);
    void InsertItem(const StudioInfo& dat);

    void DelItems();
    void DelItem(const QString& szStudioID);
protected:
    QStringList						m_header;
    QList<StudioInfo>               m_lstData;
};

CStudioTableModel::C
  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: QTableView是Qt中的一个控件,用于显示表格数据。而自定义Model则是指用户可以自己编写一个继承自QAbstractTableModel的类,来实现自己的数据模型。这样,用户就可以通过自定义Model来控制QTableView显示的数据,包括数据的格式、排序、过滤等等。自定义Model是Qt中非常常见的一种技术,可以帮助用户更好地管理和展示数据。 ### 回答2: QTableView是Qt中用于展示表格数据的控件,在实际应用中经常需要自定义QTableView的数据模型,以满足业务需求。自定义QTableView的数据模型分为两种,一种是基于QAbstractTableModel的数据模型,另一种是基于QStandardItemModel的数据模型。 使用QAbstractTableModel自定义QTableView的模型,需要继承该类并实现以下虚函数:rowCount()、columnCount()、headerData()和data()。其余函数可根据实际需求决定是否实现,或者使用父类的默认实现。在实现完成后,需要在QTableView中设置该模型,通过setModel()函数进行设置。 使用QStandardItemModel自定义QTableView的模型,需要生成一定数量的QStandardItem作为数据单元,使用setItem()函数将数据单元插入到表格中,再通过setHorizontalHeaderLabels()和setVerticalHeaderLabels()设置行列头。在实现完成后,需要在QTableView中设置该模型,通过setModel()函数进行设置。 自定义QTableView的模型可进行以下操作:插入或删除数据、修改数据、添加或删除列、排序等。实现这些操作需要在自定义数据模型中添加相应的函数,同时需要在QTableView中建立信号与槽的连接,以使模型与视图之间保持相互响应。例如,添加一行数据可使用insertRow()函数实现,删除一行数据可使用removeRow()函数实现,修改单元格数据可使用setData()函数实现,添加一列数据可使用insertColumn()函数实现,删除一列数据可使用removeColumn()函数实现。 总体来说,自定义QTableView的模型可以提高表格数据的可读性和可操作性,满足不同需求的表格数据展示。 ### 回答3: QTableView是Qt中常用的控件之一,它用于展示表格数据。QTableView可以通过使用自定义model实现表格数据的更加灵活的操作。 自定义model是指重写QAbstractTableModel的子类,以实现控制table view中数据的行为。重要的是实现rowCount、columnCount、data、headerData函数。函数的重写规则与父类相同,rowCount和columnCount分别返回表格的行数和列数,data返回表格中指定位置的数据,headerData则返回表格中每列的标题。 接下来,我们可以利用自定义model实现表格的排序、编辑、删除等操作。 排序操作可以通过重写自定义model的sort函数来实现。sort函数接受一个column index和排序类型作为参数,然后在model内部对数据进行排序并重新发射数据变更信号通知QTableView更新。 编辑操作可以通过重写自定义model的setData函数来实现。setData接受row index、column index、新的数据作为参数,并在model内部更新数据,并重新发射数据变更信号通知QTableView更新。 删除操作也可以通过重写自定义model的removeRows函数来实现。removeRows接受row index、count作为参数,并在model内部删除相应行的数据,并重新发射数据变更信号通知QTableView更新。 总之,自定义modelQTableView提供了一个可扩展的表格数据界面,通过实现自定义model,我们可以更好地控制、管理和操作表格中的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值