@

目录

0 相关文章

(1)QT(4)-QAbstractItemView

1 说明

QTableView是Qt中用于显示表格数据的小部件。它与QTableWidget类似,但是它使用模型/视图架构来存储和显示数据,而QTableWidget则直接将数据存储在小部件内部。

使用QTableView的优点在于,可以使用不同的数据模型来显示表格数据,而不仅仅是Qt提供的QStandardItemModel。这使能够以更灵活的方式处理和显示数据,例如可以将表格数据与数据库相关联。

2 常用函数

2.1 clearSpans

void QTableView::clearSpans()

它用于一次性清除表格中所有跨度。表格跨度是指一个单元格占据多个行和/或列的情况。也可以理解为我们在Excel中的取消合并单元格。如果想要移除表格中的某个特定跨度,也可以使用setSpan()函数并将行跨度和列跨度设置为1。

2.2 setSpan

void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)

将位于(row,column)的元素的范围扩展唯rowSpanCount行和 columnSpanCount列。例如:

ui->tableView->setSpan(3, 0, 2, 2);我们将第3行第0列的单元格设置为跨越2行2列。这意味着该单元格将占据第3行的第0和1列和第4行的第0,1列。

2.3 columnAt

int QTableView::columnAt(int x) const

它用于获取表格中给定坐标x处的列索引。如果给定的坐标不在表格中,则返回-1。

// Create a QTableView object
QTableView *table = new QTableView(); // Set the row and column spans for some cells
table->setSpan(0, 0, 2, 1);
table->setSpan(0, 1, 1, 2); // Get the column index at x coordinate 100
int col = table->columnAt(100); // Print the column index
qDebug() << "Column index at x=100: " << col;

columnAt()帮助确定表格中某个特定坐标处的单元格。它可以用于处理用户的鼠标点击事件,或者执行其他与单元格位置有关的操作。

2.4 rowAt

int QTableView::rowAt(int y) const

同上

2.5 columnSpan

int QTableView::columnSpan(int row, int column) const

它返回表格中指定行和列的单元格所跨越的列数。如果指定的单元格不跨越任何列,则函数返回1。就是这个元素的列占了几列

// Create a QTableView object
QTableView *table = new QTableView(); // Set the row and column spans for some cells
table->setSpan(0, 0, 2, 1);
table->setSpan(0, 1, 1, 2);
qDebug()<<table->columnSpan(0,1);//2

因为它允许快速查找表格中指定单元格跨越的列数。例如,可以使用它来计算表格的宽度,或者确定表格中某个单元格是否跨越多列。

2.6 rowSpan

int QTableView::rowSpan(int row, int column) const

同上

2.7 columnViewportPosition

int QTableView::columnViewportPosition(int column) const

返回指定列所处的x坐标(该列左上角的坐标)

2.8 rowViewportPosition

int QTableView::rowViewportPosition(int row) const

返回指定行所处的y坐标(该列左上角的坐标)

2.9 列宽、行高

2.9.1 columnWidth

int QTableView::columnWidth(int column) const

返回指定列的宽度

2.9.2 rowHeight

int QTableView::rowHeight(int row) const

返回指定行的高度

2.9.3 setColumnWidth

void QTableView::setColumnWidth(int column, int width)

将指定列的宽度设置为指定宽度

2.9.4 setRowHeight

void QTableView::setRowHeight(int row, int height)

将指定行的高度设置为指定高度

2.9.5 resizeColumnToContents(int column)

void QTableView::resizeColumnToContents(int column) slot[]

函数可以调整指定列的大小,以便适应其中的内容。

该函数接受一个 int 类型的参数,表示需要调整大小的列。调用该函数后,指定列的宽度会自动调整为适应其中的内容。

这是一个公有的槽函数,可以设计一个边输入内容边调整列宽

2.9.6 resizeColumnsToContents()

void QTableView::resizeColumnsToContents() slot[]

函数可以调整所有列的大小,以便适应其中的内容。

2.9.7 resizeRowToContents(int row)

void QTableView::resizeRowToContents(int row) slot[]

函数可以调整指定行的高度,以便适应其中的内容。

2.9.8 resizeRowsToContents()

void QTableView::resizeRowsToContents()

函数可以调整所有行的高度,以便适应其中的内容。

2.10 网格线

2.10.1 gridStyle()

Qt::PenStyle gridStyle() const

Qt::PenStyle 是一种枚举类型,用于表示画笔样式。Qt::PenStyle 类型定义了一些常用的画笔样式,如实线、虚线、点线等。



QTableView 类提供了 gridStyle() 函数,用于获取表格的网格线样式。该函数返回一个 Qt::PenStyle 类型的值,表示表格的网格线样式。

2.10.2 setGridStyle

void setGridStyle(Qt::PenStyle style)

设置网格网格线的样式

//获取样式
Qt::PenStyle style = ui->tableView->gridStyle();
qDebug()<<style;
//设置样式
ui->tableView->setGridStyle(Qt::DashLine);

2.10.3 showGrid()

bool showGrid() const

如果当前网格线是显示的则返回true,否则返回false

2.10.4 setShowGrid

void setShowGrid(bool show) slot[]

设置是否显示网格线,是公有的槽函数,可以关联一些QChexkBox

2.11 标题栏

2.11.1 horizontalHeader

QHeaderView *QTableView::horizontalHeader() const

QTableView::horizontalHeader() 函数返回表格的水平标题栏。

该函数返回一个指向 QHeaderView 类型对象的指针,表示表格的水平标题栏。可以使用这个指针来操作表格的水平标题栏,如设置调整标题栏高度等。

2.11.2 setHorizontalHeader

void QTableView::setHorizontalHeader(QHeaderView *header)

设置水平标题栏

2.11.3 verticalHeader()

QHeaderView *QTableView::verticalHeader() const

同上

2.11.4 setVerticalHeader

void QTableView::setVerticalHeader(QHeaderView *header)

同上

2.12 表格的显示和隐藏

2.12.1 isColumnHidden

bool QTableView::isColumnHidden(int column) const

该函数接受一个 int 类型的参数,表示要检查的列。如果指定的列被隐藏,该函数会返回 true;否则返回 false。

2.12.2 setColumnHidden

void QTableView::setColumnHidden(int column, bool hide)

QTableView::setColumnHidden() 函数用于设置表格的指定列是否被隐藏。

该函数接受两个参数,分别表示要隐藏的列和是否隐藏。如果将 hide 参数设置为 true,则指定的列会被隐藏;如果将 hide 参数设置为 false,则指定的列会显示出来。

2.12.3 hideColumn

void QTableView::hideColumn(int column) slot[]

公有槽函数,隐藏指定的列

2.12.4 showColumn

void QTableView::showColumn(int column) slot[]

公有槽函数,显示指定的列

下面是一个简单的示例,展示了如何使用 QTableView::setColumnHidden() 函数:

2.12.5 isRowHidden

bool QTableView::isRowHidden(int row) const

同上

2.12.6 setRowHidden

void QTableView::setRowHidden(int row, bool hide)

是否隐藏指定的行

2.12.7 hideRow

void QTableView::hideRow(int row) slot[]

同上

2.12.8 showRow

void QTableView::showRow(int row) slot[]

同上

2.12.9 hide

void QWidget::hide()

隐藏整个表格和setVisible(false)效果一样

2.12.10 show

显示整个表格

2.13 setCornerButtonEnabled

QTableView::setCornerButtonEnabled(bool enable)

QTableView::setCornerButtonEnabled() 函数用于设置表格的角落按钮是否可用。

表格的角落按钮通常位于表格的左上角,用于选择整个表格或所有列/行。如果将参数 enable 设置为 true,则表格的角落按钮会变为可用状态,用户可以通过点击该按钮来选择整个表格。如果将参数 enable 设置为 false,则表格的角落按钮会被禁用,用户无法通过点击该按钮来选择整个表格。

bool isCornerButtonEnabled() const

判断左上角按钮是否被禁用

2.14 setSortingEnabled

void QTableView::setSortingEnabled(bool enable)

QTableView 类提供了 setSortingEnabled() 函数,用于设置表格是否支持排序。

如果将参数 enable 设置为 true,则表格会支持排序,即用户可以点击表格的标题栏进行排序;如果将参数 enable 设置为 false,则表格不支持排序,用户无法对表格进行排序。

2.15 换行

bool wordWrap() const

返会是否换行

void setWordWrap(bool on)

设置是否在超出单元格宽度时自动换行

QT(3)-QTableView的更多相关文章

  1. Qt之QTableView添加复选框(QAbstractItemDelegate)

    简述 上节分享了使用自定义模型QAbstractTableModel来实现复选框.下面我们来介绍另外一种方式: 自定义委托-QAbstractItemDelegate. 简述 效果 QAbstract ...

  2. Qt之QTableView添加复选框(QAbstractTableModel)

    简述 使用QTableView,经常会遇到复选框,要实现一个好的复选框,除了常规的功能外,还应注意以下几点: 三态:不选/半选/全选 自定义风格(样式) 下面我们介绍一下常见的实现方式: 编辑委托. ...

  3. Qt中将QTableView中的数据导出为Excel文件

    如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...

  4. QT中Qtableview视图表格中点击表头进行排序

    用QT写了一个小工具,主要是对Excel中大量的数据进行计算和显示. 写了有一段时间,然后断断续续的做一些修改和完善. 因为要显示的数据有多列,很自然的会想到要能够对显示的数据进行排序.如果直接操作m ...

  5. qt QTableWidget&&QTableView 导出数据到excel

    通常情况下,我们在开发过程中比较常用的方法是将表格的数据到处到excel文件.我也在这个点上头疼了很长时间,不过功夫不负苦心人,最终还是勉强达到效果,为了后面再次用到时不手忙脚乱现在将方法寄存在此,如 ...

  6. [转]qt QTableWidget&&QTableView 导出数据到excel

    转自http://blog.csdn.net/fairystepwgl/article/details/54576372 注意:由于在qt导出的过程中分为QTableWidget导出文件到excel和 ...

  7. Qt之QTableView显示富文本

    简述 对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本.进度条.复选框等,今天我们介绍一下关于富文本的显示. 可能绝大多数小伙伴会通过QAbstractTableModel中的d ...

  8. Qt 【QTableView + DIY delegate】

    通过继承QStyledItemDelegate类去实现自定义委托,达到这样的效果,因为本身Qlistview是单列多行有些信号处理的不好,所以使用QTableview多行多列去实现: 图片路径设置在r ...

  9. Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)

    http://blog.csdn.net/liang19890820/article/details/50973099

  10. Qt之QHeaderView添加复选框

    简述 前面分享了QTableView中如何添加复选框.本节主要介绍QTableView中的表头-QHeaderView添加复选框的功能,下面以水平表头为例,垂直表头类似! 简述 效果 QHeaderV ...

随机推荐

  1. 高效运营新纪元:智能化华为云Astro低代码重塑组装式交付

    摘要:程序员不再需要盲目编码,填补单调乏味的任务空白,他们可以专注于设计和创新:企业不必困惑于复杂的开发过程,可以更好地满足客户需求以及业务策略迭代. 本文分享自华为云社区<高效运营新纪元:智能 ...

  2. 2021-7-30 MySql进阶2

    创建临时表只需在table前面加temporary CREATE TEMPORARY TABLE mytable#创建临时表,在断开数据库连接时销毁 ( ID INT NOT NULL, userna ...

  3. python3使用ESL和sipp自动多轮压测FreeSWITCH

    环境:CentOS 7.6_x64   FreeSWITCH版本 :1.10.9   sipp版本:3.6.1   python版本:3.9.12 日常工作中,有时会遇到批量自动压测FreeSWITC ...

  4. SpringBoot3基础用法

    目录 一.背景 二.环境搭建 1.工程结构 2.框架依赖 3.环境配置 三.入门案例 1.测试接口 2.全局异常 3.日志打印 3.1 日志配置 3.2 日志打印 四.打包运行 五.参考源码 技术和工 ...

  5. vue实现文本复制

    一. 下载插件 npm install --save vue-clipboard2 二. main.js import VueClipBoard from 'vue-clipboard2' Vue.u ...

  6. iostat命令安装及详解

    iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同vmstat一样,i ...

  7. ChatGPT大师班 从入门到精通 视频教程 完整版

    本内容收集于:AIGC从入门到精通教程汇总 课程截图 课程目录 01.先导课:工具篇----ChatGPT平替解决方案及汉化教程.mp4 02.第1课:AIGC时代的到来.mp4 03.第2课:认识C ...

  8. Auto-GPT免费尝鲜之初体验-使用攻略和总结

    写在前面的废话 ChatGPT 的交互模式,是和一个 "人" 对话聊天. 如果你想了解更多ChatGPT和AI绘画的相关知识,请参考:ChatGPT注册和变现思路,AI绘画教程汇总 ...

  9. API对接需求如何做需求调研,需要注意什么?

    随着互联网的发展,越来越多的企业开始将自己的业务系统通过API接口与其他系统进行对接,以便于数据的共享.协同操作等.在进行API对接之前,需要对用户需求进行深入的调研,以便于能够准确的设计出满足用户需 ...

  10. 简化车辆登记流程:利用腾讯云OCR实现自动化信息识别

      项目中有一块,需要用到上传车牌车牌号到系统里,用了下腾讯云的ocr车牌号识别做了个小功能.通过腾讯云的orc识别,将车牌号录入到后台. 一,首先我们需要登录到腾讯云,然后搜索一下orc或者车牌号 ...