Qt的table view学习

简单学习Qt的table view

文章参考:吓人的猿(Qt深入浅出(十五)QTableView)

tabel view类似于excel,目前用到就来学习学习。
目前暂且不管什么复杂的实现东西,我就想知道怎么用。
table view感觉就是一个展示的控件,数据来源要借助于<QStandardItemModel>

下面附上详细内容

//.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    widget.cpp

HEADERS += \
    widget.h

FORMS += \
    widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${
   TARGET}/bin
else: unix:!android: target.path = /opt/$${
   TARGET}/bin
!isEmpty(target.path): INSTALLS += target

</
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Qt中创建一个带有分页功能的表格视图,您可以使用QTableView和QAbstractTableModel类。首先,您需要创建一个自定义的TableModel类,该类继承自QAbstractTableModel,并重写一些方法,如rowCount()、columnCount()、data()等,以便为表格提供数据。 以下是一个简单的示例TableModel类: ```cpp class CustomTableModel : public QAbstractTableModel { public: CustomTableModel(QObject *parent = nullptr); // 重写rowCount、columnCount、data方法 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; // 自定义方法,用于设置表格数据 void setTableData(const QVector<QVector<QString>> &data); private: QVector<QVector<QString>> m_tableData; // 存储表格数据 }; ``` 在这个TableModel类中,我们使用一个QVector来存储表格数据,并提供了一个setTableData()方法,用于设置表格数据。 接下来,您需要在Qt中创建一个QTableView,并将其与自定义的TableModel类实例化。然后,您需要设置分页器,以便用户可以浏览不同的表格页面。 以下是一个简单的示例: ```cpp // 创建QTableView实例 QTableView *tableView = new QTableView(this); // 实例化自定义的TableModel类 CustomTableModel *model = new CustomTableModel(this); // 设置表格数据 QVector<QVector<QString>> tableData = {{"A1", "B1", "C1"}, {"A2", "B2", "C2"}, {"A3", "B3", "C3"}, {"A4", "B4", "C4"}, {"A5", "B5", "C5"}, {"A6", "B6", "C6"}, {"A7", "B7", "C7"}, {"A8", "B8", "C8"}, {"A9", "B9", "C9"}, {"A10", "B10", "C10"}, {"A11", "B11", "C11"}, {"A12", "B12", "C12"}, {"A13", "B13", "C13"}, {"A14", "B14", "C14"}, {"A15", "B15", "C15"}}; model->setTableData(tableData); // 设置TableModel为QTableView的model tableView->setModel(model); // 设置分页器 QSqlTableModel *sqlModel = new QSqlTableModel(this); sqlModel->setTable("tablename"); sqlModel->setEditStrategy(QSqlTableModel::OnManualSubmit); tableView->setModel(sqlModel); tableView->setSortingEnabled(true); tableView->verticalHeader()->hide(); tableView->horizontalHeader()->setStretchLastSection(true); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setSelectionMode(QAbstractItemView::SingleSelection); tableView->setShowGrid(false); tableView->setAlternatingRowColors(true); QItemSelectionModel *selectionModel = tableView->selectionModel(); connect(selectionModel, SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), this, SLOT(onCurrentRowChanged(QModelIndex,QModelIndex))); connect(tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onDoubleClicked(QModelIndex))); ``` 在这个示例中,我们设置了一个QSqlTableModel实例,用于从数据库中获取数据,并启用了分页器。您可以根据您的需求自定义分页器的行数和列数。 最后,您需要实现一些槽函数来处理用户在分页器上的操作,例如翻页或更改每页显示的行数。 希望这可以帮助您开始使用Qt创建带有分页功能的表格视图。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值