Qt组件之QTableWidget

QTableWidget为应用程序提供标准的表格显示功能,其项目使用QTableWidgetItem创建。
如果要显示自己的数据模型,则需使用QTableView。

使用行和列的数量来构建:

tableWidget = new QTableWidget(12, 3, this);

构建时不给定大小,使用方法调整:

tableWidget = new QTableWidget(this);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);

使用 setItem ()插入内容:

QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1)*(column+1)));
tableWidget->setItem(row, column, newItem);

查看行数和列数:

int QTableWidget::columnCount()//查看列数
int QTableWidget::rowCount()//查看行数
void QTableWidget::setRowCount(int rows)//设置行数
void QTableWidget::setColumnCount(int columns)//设置列数

创建表头:

void QTableWidget::setHorizontalHeaderLabels(const QStringList &labels)//水平表头
void QTableWidget::setVerticalHeaderLabels(const QStringList &labels)//垂直表头

信号:

void QTableWidget::cellActivated(int row, int column)//指定单元格被激活
void QTableWidget::cellChanged(int row, int column)//指定单元格中数据发生改变
void QTableWidget::cellClicked(int row, int column)//指定单元格被单击
void QTableWidget::cellDoubleClicked(int row, int column)//指定单元格被双击
void QTableWidget::cellEntered(int row, int column)//鼠标光标移动到指定单元格(需打开鼠标跟踪)或指定单元格被点击
void QTableWidget::cellPressed(int row, int column)//指定单元格被按下(包括键盘Enter)
void QTableWidget::currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)//当前单元格发生改变
void QTableWidget::currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)//当前项目发生变化
void QTableWidget::insertColumn(int column)//指定位置插入空列
void QTableWidget::insertRow(int row)//指定位置插入空行
void QTableWidget::itemActivated(QTableWidgetItem *item)//指定项目被激活
void QTableWidget::itemChanged(QTableWidgetItem *item)//指定项目被改变
void QTableWidget::itemClicked(QTableWidgetItem *item)//指定项目被点击
void QTableWidget::itemDoubleClicked(QTableWidgetItem *item)//指定项目被双击
void QTableWidget::itemEntered(QTableWidgetItem *item)//光标进入指定项目
void QTableWidget::itemPressed(QTableWidgetItem *item)//指定项目被按下
void QTableWidget::itemSelectionChanged()//选择发生改变

槽:

void QTableWidget::clear()//清空表格所有内容(包括表头),表格大小不变
void QTableWidget::clearContents()//清空表格所有内容(不包括表头),表格大小不变
void QTableWidget::removeColumn(int column)//删除指定列(会改变表格大小)
void QTableWidget::removeRow(int row)//删除指定行(会改变表格大小)
void QTableWidget::scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)//移动视野使指定项目可见

其他函数:

void QTableWidget::closePersistentEditor(QTableWidgetItem *item)//关闭持久编辑某一项
int QTableWidget::column(const QTableWidgetItem *item)//返回某一项目所在列
int QTableWidget::currentColumn()//返回当前列
QTableWidgetItem *QTableWidget::currentItem() //返回当前项目
int QTableWidget::currentRow()//返回当前行
void QTableWidget::editItem(QTableWidgetItem *item)//如果该项目可编辑则开始编辑
QList<QTableWidgetItem *> QTableWidget::findItems(const QString &text, Qt::MatchFlags flags)//按指定标志查找元素

其中flags取值如下:

ConstantValueDescription
Qt::MatchExactly0执行基于QVariant的匹配
Qt::MatchFixedString8执行基于字符串的匹配。除非同时指定MatchCaseSensitive标志,否则基于字符串的比较不区分大小写。
Qt::MatchContains1搜索词包含在项目中。
Qt::MatchStartsWith2搜索词包含在项目开头
Qt::MatchEndsWith3搜索词包含在项目结尾
Qt::MatchCaseSensitive16搜索词区分大小写
Qt::MatchRegExp4使用正则表达式作为搜索项执行基于字符串的匹配,使用QRegExp类。(此项在Qt5.15后不推荐使用)
Qt::MatchRegularExpression9使用正则表达式作为搜索项执行基于字符串的匹配,使用QRegularExpression类。使用此标志时,可以将QRegularExpression对象作为参数传递,并将直接用于执行搜索。区分大小写标志将被忽略,因为QRegularExpression对象预计将被完全配置。
Qt::MatchWildcard5使用带有通配符的字符串作为搜索词,执行基于字符串的匹配。
Qt::MatchWrap32执行循环搜索,当搜索完模型中的最后一个项目时,从第一个项目开始,直到所有项目都搜索完毕。
Qt::MatchRecursive64搜索整个层次结构。

注意:Qt::MatchExactly, Qt::MatchContains, Qt::MatchStartsWith, Qt::MatchEndsWith, Qt::MatchRegularExpression, Qt::MatchWildcard, 和 Qt::MatchFixedString是互斥的

QTableWidgetItem *QTableWidget::horizontalHeaderItem(int column)//返回指定列的水平表头,如果不存在返回空指针
bool QTableWidget::isPersistentEditorOpen(QTableWidgetItem *item) //返回某项持久编辑是否打开
QTableWidgetItem *QTableWidget::item(int row, int column)//返回指定单元格的内容

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值