QTableView

  • 0 相关文章
  • 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
    • 2.15 换行

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中加入Check列实现

    QTableView中嵌入复选框CheckBox        第二种方法:设置QAbstractTableModel的flags()函数法 通过Delegate创建QCheckBox来实现的Chec ...

  2. Qt:QTableView(01) 的用法

    Qt:QTableView(01) 的用法 文章目录 Qt:QTableView(01) 的用法 前言 一 .给 QTableView 添加表头 二.设置表格属性 1. 设置 QTableView 内 ...

  3. qt中Qtableview的用法

    QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: 一 添加表头 //准备数据模型     QStandardItemModel *student_model = ne ...

  4. 【Qt】QTableView中嵌入复选框CheckBox 的四种方法总结

    搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...

  5. Qt之QTableView的使用

    QTableView类实现表格视图,QTableView的数据由继承QAbstractItemModel的子类models来提供. 1.使得QTableView的大小和主窗口大小一致 //获得主窗口的 ...

  6. Qt之QTableView、QTableWidget

    提示:此文简单介绍了QTableWidget及QTableView的区别,以QTableWidget为例,讲述表格样式,并演示了表格样式静态和动态的效果. 文章目录 前言 一.QTableView和Q ...

  7. QT中QTableView 点击表头进行排序

    今日,由于工作需要,要实现在QTableView中点击表头进行排序的功能,但QTableView中并未提供此功能,经过苦苦的网络搜索也为发现可用的代码.最后经过跟踪QTableWidget的排序功能实 ...

  8. 实例QT程序 —— QTableView 表格行的上下移动

    目录 1.简介 2.源码 3.效果图 源码下载地址 https://download.csdn.net/download/Redboy_Crazy/12276410 1.简介 上一篇文章,介绍了实现Q ...

  9. (四)Paint函数实现QTableView中增加QCheckBox的方法

      第四种方法是:实现QAbstractItemDelegate的paint()函数. 这种方法和<C++_GUI_Qt4_编程(第二版)>中第十章的自定义委托例子,画星星的作法是一样的, ...

最新文章

  1. 移动磁盘由于IO设备错误,要怎样寻回文件
  2. BZOJ1002 [FJOI2007]轮状病毒(最小生成树计数)
  3. matlab多维数组
  4. 在Spring Boot中使用Vaadin的简介
  5. tf.app.flags和tf.app.run的使用
  6. 关于四则运算的设计思想
  7. 常对象和常函数的关系 const
  8. 这款颜值高的到底是剃须刀还是充电宝,这么黑科技?
  9. ajax jq 图片上传请求头_前端常见面试 请求篇
  10. c++使用递归来进行阶乘
  11. 通过Visio软件的宏编写Java代码
  12. Excel怎么忽略位置对比两列数据是否相同
  13. 您的Mac已成功加入Wi-Di网络,但是无法访问互联网问题及解决方案
  14. lnkscape制作logo
  15. [附源码]Python计算机毕业设计Django基于Web的软考题库平台
  16. 微信h5缓存清理技巧
  17. win7旗舰版64位占了20多G的内存的清理方法
  18. 蓝牙BLEBLEcc2540开启广播的过程
  19. CAS 密码盐值加密
  20. 关于Deepin商店没有应用的解决办法

热门文章

  1. scikit-learn_Scikit Learn-快速指南
  2. 参观云栖小镇体会_杭州云栖小镇之旅
  3. 如何查看本机端口号是否被占用以及如何关闭相应端口号
  4. Alist百度网盘大文件需要权限解决
  5. iOS 15.4 更新比我们预期的要大得多还有 7 个有意思的变化
  6. [Linux] Samba服务器配置 安全级别为share
  7. 【Oracle】使用DataGrip连接Oracle数据库
  8. ACM OJ 平台以及平台题目分类
  9. 关于共享文件夹的使用
  10. 用友EAI企业应用集成使用手册U8EAI手册2006年下载