QT(3)-QTableView

news2024/11/13 21:21:50

QTableView

  • 1 说明
  • 2 常用函数
    • 2.1 clearSpans
    • 2.2 setSpan
    • 2.3 columnAt
    • 2.4 rowAt
    • 2.5 columnSpan
    • 2.6 rowSpan
    • 2.7 columnViewportPosition
    • 2.8 rowViewportPosition
    • 2.9 列宽、行高
      • 2.9.1 columnWidth
      • 2.9.2 rowHeight
      • 2.9.3 setColumnWidth
      • 2.9.4 setRowHeight
      • 2.9.5 resizeColumnToContents(int column)
      • 2.9.6 resizeColumnsToContents()
      • 2.9.7 resizeRowToContents(int row)
      • 2.9.8 resizeRowsToContents()
    • 2.10 网格线
      • 2.10.1 gridStyle()
      • 2.10.2 setGridStyle
      • 2.10.3 showGrid()
      • 2.10.4 setShowGrid
    • 2.11 标题栏
      • 2.11.1 horizontalHeader
      • 2.11.2 setHorizontalHeader
      • 2.11.3 verticalHeader()
      • 2.11.4 setVerticalHeader
    • 2.12 表格的显示和隐藏
      • 2.12.1 isColumnHidden
      • 2.12.2 setColumnHidden
      • 2.12.3 hideColumn
      • 2.12.4 showColumn
      • 2.12.5 isRowHidden
      • 2.12.6 setRowHidden
      • 2.12.7 hideRow
      • 2.12.8 showRow
      • 2.12.9 hide
      • 2.12.10 show
    • 2.13 setCornerButtonEnabled
    • 2.14 setSortingEnabled

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,则表格不支持排序,用户无法对表格进行排序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gitlab结合semantic-release自动化发布npm插件(二)

前言 在内部组织架构开发npm包时&#xff0c;很多人会想到规范问题&#xff0c;难道按前文gitlab结合semantic-release自动化规范git流程(一)所描述根据git的CI/CD就可以了吗&#xff0c;每次发布都会版本对应的新增&#xff0c;而往往新增的版本不是我们所需要的&#xff0c;…

如何去掉视频上的水印文字?视频去水印方法大分享

我们在网上看到喜欢的视频&#xff0c;都会保存下来&#xff0c;经常能够看到保存下来的这些视频中都带有水印。这些带有水印的视频在后期的观看过程中&#xff0c;会很影响整个画面&#xff0c;所以我们在保存下来后&#xff0c;可以选择将视频中的水印去除。那么视频如何去水…

物料管理系统最基本的功能有哪些?

随着企业信息化的快速发展&#xff0c;传统企业的企业快速增长与管理水平、手段滞后之间的矛盾已成为影响企业发展的重要因素和阻碍企业战略目标实现的主要矛盾。尤其是对于一些传统的中小型制造企业企业而言&#xff0c;以往的信息化系统所做的相应规划已经完全不能适用于高速…

【论文阅读32】《Texture Defragmentation for Photo-Reconstructed 3D Models》

目录 1 introduction 2 overview 3 Related work 3.1 Single-patch Mesh Parametrization 3.2 Global Mesh Parametrization 3.3 Signal-Specialized UV Maps 3.4 Mesh repairing 3.5 Alleviating the effect of seams 3.6 Packing of texture charts 4 Phases of the algorith…

初阶数据结构学习记录——열넷 排序(3)

归并排序 归并的思路其实和二叉树&#xff0c;快排都有点像。归并希望左、右半区间有序。和快排不同&#xff0c;先分裂后排序&#xff0c;一半一半分&#xff0c;分到最后每个区间只剩一个1个数字&#xff0c;这个区间一定是有序的&#xff0c;因为只有一个数字&#xff0c;往…

kubernetes的基本使用

文章目录kubernetes的基本使用1、部署方式1、部署方式的演进图2、各部署方式的特点2、架构的简单说明1、架构简图2、各组件说明1、控制平面组件&#xff08;Control Plane Components&#xff09;1、kube-apiserver2、etcd3、kube-scheduler4、kube-controller-manager5、cloud…

Apache HTTPD 换行解析漏洞

漏洞介绍&#xff1a; Apache HTTPD是一款HTTP服务器&#xff0c;它可以通过mod_php来运行PHP网页。 影响版本&#xff1a;Apache 2.4.0~2.4.29 存在一个解析漏洞&#xff1b;在解析PHP时&#xff0c;1.php\x0A将被按照PHP后缀进行解析&#xff0c;导致绕过一些服务器的安全策…

Windows中cmd命令窗口一些有用的小技巧命令

使用小功能记录 命令功能help显示所有dos命令&#xff0c;help >> cmd.txt,会把命令输出成文档altprtscreen快速截取命令行窗口esc清除当前命令行tab补全路径&#xff0c;若知道路径开头可快速补全&#xff0c;包含隐藏文件&#xff0c;但文件夹多又不知道路径开始字符时…

scrapy框架了解与使用

scrapy介绍与安装 Scrapy 是开源和协作的一个基于 Twisted 实现的异步处理爬虫框架使用纯 Python 语言编写&#xff0c;被誉为爬虫界的Django&#xff0c;Scrapy 框架应用广泛&#xff0c;常用于数据采集、网络监测&#xff0c;以及自动化测试等 Scrapy安装 mac、linux系统 …

【入门AI】利用Paddle实现简单的数字识别

梳理逻辑 整个流程 准备好Paddle的环境准备好训练样本设计模型(定义模型)训练模型模型测试 1、准备好环境 #加载飞桨和相关类库 import paddle from paddle.nn import Linear import paddle.nn.functional as F import os import numpy as np import matplotlib.pyplot as plt…

集美大学第14届蓝桥校选题解

本次比赛的出题表如下&#xff1a; 退役一年&#xff0c;勋总还是那么强呜呜呜 目录填空题[1] 十甚至九题意思路拓展[蓝桥杯] XXX 进制减法第十三届蓝桥杯C/C省赛B组 E题[2] 九大于十题意思路[3] N皇后签到题[1] JMU最强蓝人[2] 哪有赌狗一直输[3] 元胞自动机题意思路代码实…

PLC程序实例二:ModBusTCP客户端编程实例与测试方法

一、需求描述 1、设备作为服务端时&#xff0c;需要给出对应的测试方法&#xff0c;即要求 PLC 作为客户端&#xff0c;设备作为服务端&#xff0c;因此要求编写 PLC 的ModBusTCP客户端 2、先了解一下设备作为服务端的ModBusTCP网络触发业务逻辑 &#xff08;1&#xff09;设…

SQL 语法速成手册

基本概念 数据库术语 数据库&#xff08;database&#xff09;&#xff1a;保存有组织的数据的容器&#xff08;通常是一个文件或一组文件&#xff09;。数据表&#xff08;table&#xff09; &#xff1a;某种特定类型数据的结构化清单。模式&#xff08;schema&#xff09;…

JAVA SCRIPT设计模式--创建型设计模式之抽象工厂(1)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

这俩个技巧 解决了90%的冲突

解决冲突的关键技巧 关于本书作者&#xff1a; 达纳.卡斯帕森&#xff0c;冲突调节的专家&#xff0c;尚普兰大学人际冲突专业的硕士。三次获得芭蕾舞国际协会搬的最佳舞者奖。 关于本书&#xff1a; 这是一本引导别人如何化解一段冲突&#xff0c;达成一次有效沟通的社交类…

DataX 及 DataX-Web 安装使用详解

文章目录一、DataX安装1、解压datax.tar.gz2、运行自检脚本二、Datax-Web安装1、解压DataXWeb安装包2、执行一键安装脚本3、启动服务前段时间在项目上使用了阿里的离线数据同步工具datax&#xff0c;在大批量的表同步过程中踩了一些坑&#xff0c;所以详细介绍一下&#xff0c;…

五、伊森商城 前端基础-Vue Vue脚手架原理与使用 p27

目录 Vue项目结构 一、使用vue脚手架进行模块化开发 1、main文件 1.1、首先new Vue创建了一个vue实例&#xff0c;这个实例挂载了index.html中的app元素 1.2、使用了路由&#xff0c;这个路由是简写的写法 1.3、components使用了一个组件叫App 1.4、最终渲染 2、App.vu…

卷积神经网络相关模型

卷积神经网络相关模型1. CNN架构2. CNN架构模型2.1LeNet模型2.2Alexnet模型2.3VGG16模型2.3.1 使用多层小卷积核代替一层大的卷积核优点2.3.2 使用1*1卷积核优点2.3.2 模型特点卷积神经网络基本概念相关知识连接 卷积神经网络基本概念相关知识连接 1. CNN架构 模型分为2部分【…

ubuntu1804在rviz中显示kitti数据集的2D检测框和激光雷达的3D检测框

之前所做的工作参考上篇博客ubuntu1804发布kitti数据集的gps资料,imu资料(包含发布图片,点云过程)_FYY2LHH的博客-CSDN博客 本次将详解如何在ros播放的kitti数据集上作出检测框,首先需要知道的是对于kitti数据集中的每一帧都必须提前进行标注,而这个工作已经被别人完成了…

42. Python range函数—生成器函数

42. range函数—生成器函数 文章目录42. range函数—生成器函数1. 什么是range( )函数2. 回顾列表切片的语法3. range( )函数的语法3. range函数实操3.1 只有1个参数3.2 有2个参数3.3 有3个参数3.4 步长为负数4. list不能完全替代range5. 总结1. 什么是range( )函数 range[reɪ…