一、概述

在Qt Designer中,对于表视图QTableView,在属性在下面有专门一栏列出了跟标题相关的属性,如图:



这些属性并不是QTableView的直接属性,而是QTableView的horizontalHeader和verticalHeader两个属性的子属性。

二、horizontalHeader和verticalHeader

horizontalHeader和verticalHeader分别表示视图数据项的水平标题和竖直标题,水平标题表示每列的标题如字段名,竖直标题表示每行的标题如行号。

horizontalHeader和verticalHeader分别通过QTableView的horizontalHeader()和verticalHeader()方法获取,返回类型为QHeaderView类型,可以通过QTableView的方法setVerticalHeader(QHeaderView header)、setHorizontalHeader(QHeaderView header)来设置。

三、Qt Designer标题属性与QHeaderView对应关系

3.1、horizontalHeaderVisible和verticalHeaderVisible

这两个属性都对应QHeaderView的visible属性,表示标题是否可见,该属性实际上是从QWidget继承过来的属性,可以通过isVisible()、setVisible(bool visible)进行访问。

要设置视图中水平标题和竖直标题可见,分别用类似如下语句即可:

self.tableView.horizontalHeader().setVisible(True)
self.tableView.verticalHeader().setVisible(True)
3.2、horizontalCascadingSectionResizes和verticalCascadingSectionResizes属性

horizontalCascadingSectionResizes和verticalCascadingSectionResizes这两个属性都对应QHeaderView的CascadingSectionResizes属性,

CascadingSectionResizes属性用于控制当用户调整标题的区域(sections)大小达到其最小值时,是否将交互式大小调整级联到下一区域。关于这个属性大家可以参考《PyQt(Python+Qt)学习随笔:QHeaderView的CascadingSectionResizes属性》相关的介绍。

3.2、horizontalHeaderDefaultSectionSize和verticalHeaderDefaultSectionSize属性

horizontalHeaderDefaultSectionSize和verticalHeaderDefaultSectionSize这两个属性都对应QHeaderView的defaultSectionSize属性,defaultSectionSize用于控制标题头各字段区域的在重写调整大小之前的默认大小。

注意:defaultSectionSize这个属性的值仅对大小调整模式resizeMode设置为 Interactive 或 Fixed时有效。

默认情况下,此属性的值依赖于样式。因此,当样式更改时,此属性将同时根据样式的设置更新。当代码调用setDefaultSectionSize()后,此属性就不再受样式的影响,而调用resetDefaultSectionSize()将恢复根据样式的设置更新。

可以使用方法defaultSectionSize()、setDefaultSectionSize(int size)来访问和设置该属性的值。

3.3、horizontalHeaderHighlightSections和verticalHeaderHighlightSections属性

horizontalHeaderHighlightSections和verticalHeaderHighlightSections这两个属性对应QHeaderView的highlightSections属性,highlightSections属性用于控制当选择了tableView视图中数据项时,对应的表头区域是否高亮。

可以通过方法highlightSections() 、setHighlightSections(bool highlight)来访问或设置该属性相关的值。

示例代码:

self.tableView.verticalHeader().setHighlightSections(True)
self.tableView.horizontalHeader().setHighlightSections(True)
3.4、horizontalHeaderMinimumSectionSize和verticalHeaderMinimumSectionSize属性

horizontalHeaderMinimumSectionSize和verticalHeaderMinimumSectionSize这两个属性对应QHeaderView的minimumSectionSize属性,该属性用于控制表头各字段区域的最小大小。

minimumSectionSize是允许的最小尺寸,如果设置为-1,QHeaderView将使用globalStrut(globalStrut是用于控制所有界面交互元素的最小大小)的最大值或fontMetrics(fontMetrics为当前部件字体对应的字符或字符串大小的计算度量数据,如baseline(基线)、width、asent(超出基线的高度)、decent(基线之下的高度))指定的大小。

minimumSectionSize属性的设置对所有大小调整模式都有效。

3.5、horizontalHeaderShowSortIndicator和verticalHeaderShowSortIndicator属性

horizontalHeaderShowSortIndicator和verticalHeaderShowSortIndicator这两个属性对应QHeaderView的showSortIndicator属性,showSortIndicator属性用于控制表头是否显示排序标记。排序标记会显示在当前点击选择的标题字段上。

注意在排序标记显示属性showSortIndicator为True的情况下

  1. 在首次显示视图时,默认显示在第一列和第一行的标题上,但此时如果应用数据未进行排序处理,实际显示数据是按数据生成顺序显示;
  2. 当点击水平标题时,就会按点击字段对视图数据排序显示,再次点击就会反序显示;
  3. 当点击竖直标题时,排序标记会变化,但视图中的数据无变化,如果需要变化,应用需要进行调整。

以上情况是老猿验证的情况,最后一点是否正确老猿暂时不能完全确认。

showSortIndicator属性可以通过方法isSortIndicatorShown() 、setSortIndicatorShown(bool show)进行访问或设置。

示例代码

self.tableView.horizontalHeader().setSortIndicatorShown(True)
3.6、horizontalHeaderStretchLastSection和verticalHeaderStretchLastSection属性

horizontalHeaderStretchLastSection和verticalHeaderStretchLastSection这两个属性对应QHeaderView的stretchLastSection属性,stretchLastSection属性用于控制最后一个显示的表头是否占用视图中所有可用空间。

stretchLastSection属性默认值为False,可以通过stretchLastSection()、setStretchLastSection(bool stretch)方法进行访问和设置。

一般情况下,只有水平表头才需要设置该属性,竖直表头也可以设置该属性,并且在视图中数据行数不多时会拉伸最后一行数据占用整个视图的空间,但并没有多少实际意义。

老猿Python,跟老猿学Python!

PyQt(Python+Qt)学习随笔:QTableView的标题表头相关属性的更多相关文章

  1. PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响

    老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系&g ...

  2. PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup、colorRole的用途和含义

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 1.palette属性 QWidget部件的palette属性用于控制 ...

  3. PyQt(Python+Qt)学习随笔:模式窗口的windowModality属性与modal属性

    windowModality属性 windowModality属性只对窗口对象有效,保存的是哪些类型的窗口被模式窗口阻塞. 模式窗口防止其他窗口中的部件获取输入.此属性的值控制对应窗口可见时阻塞哪些类 ...

  4. PyQt(Python+Qt)学习随笔:布局控件layoutSpacing属性

    在Qt Designer中布局控件有4个,分别是Vertical Layout(垂直布局).Horizontal Layout(水平布局).Grid Layout(网格布局).Form Layout( ...

  5. PyQt(Python+Qt)学习随笔:布局控件layoutStretch属性

    在Qt Designer中布局控件有4个,分别是Vertical Layout(垂直布局).Horizontal Layout(水平布局).Grid Layout(网格布局).Form Layout( ...

  6. PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...

  7. PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性

    老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖 ...

  8. PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑

    老猿Python博文目录 老猿Python博客地址 dragEnabled属性用于控制视图是否支持拖拽,可以通过dragEnabled().setDragEnabled(bool enable)进行属 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中窗口对象的windowFilePath属性

    windowFilePath属性仅对窗口对象有效,用于关联一个窗口和对应的文件及路径. 当窗口没有设置标题属性的情况下,则窗口标题展示展示windowFilePath对应的文件名的信息(路径信息不展示 ...

随机推荐

  1. (5)ASP.NET Core3.1 Ocelot服务质量

    1.服务质量(Quality of Service) 对于微服务来说,熔断就是我们常说的"保险丝",意思是当服务出现某些状况时候,通过切断服务防止应用程序不断地执行可能会失败的操作 ...

  2. 强迫自己学习Jquery 最喜欢的hitch函数

    用过dojo的人都知道hitch. 通过绑定一个函数的上下文得到一个新函数,当然还能绑定参数 Jquery里没有这个功能,实在太不方便了. 这是我不喜欢用Jquery的第一原因,第二原因是Jquery ...

  3. 栈(Stack)和队列(Queue)是两种操作受限的线性表。

    (线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足"一对一"的逻辑关系. "一对一"的逻辑关系指的 ...

  4. Android状态栏与布局重叠解决方案

    问题起因: 同组的同事将项目全局设置成了沉浸式,对于我这个半路过来开发的人 可真是头疼呵~ 没办法,那就我自己添加一个头吧.也可以在布局中取消沉浸式,不过我这个是在fragment中,为了不修改之前的 ...

  5. pytorch框架对RTX 2080Ti RTX 3090的支持与性能测试

    时间点:202011-18 一.背景 2020年9月nvidia发布了30系列的显卡.比起20系列网上的评价是:性能翻倍,价格减半. 最近正好本人手上有RTX 2080Ti 和 RTX 3090,所以 ...

  6. Xpath定位元素-一个例子

    前几天在群里面解决的问题,记录下来和大家分享 需要定位这个股份制企业 方法: # 首先需要单击下拉框弹出企业性质的下拉选项:然后用过Xpath定位元素 driver.find.element_by_c ...

  7. MySQL 5.x乱码问题解决

    MySQL是一款常用的开源数据库软件,但是对于初次使用者好像并不是太友好,MySQL5.x的版本中默认字符集是latin1也就是我们所知道的ISO-8859-1字符集,这个字符集编码并没有包含汉字,所 ...

  8. 面试官:你说你精通SpringBoot,你给我说一下类的自动装配吧

    ## 剖析@SpringBootApplication注解 创建一个SpringBoot工程后,SpringBoot会为用户提供一个Application类,该类负责项目的启动: ```@Spring ...

  9. [大雾雾雾雾] 告别该死的 EFCore Fluent API (续)

    朋友们好啊, 我是 .NET 打工人 玩双截棍的熊猫 刚才有个朋友问我 猫猫发生什么事了 我说 怎么回事? 给我发了一张截图 我一看!嗷!原来是zuo天有两个数据库, 一个四十多岁,一个三十多岁 它们 ...

  10. Xrepo:一个现代化的跨平台 C/C++ 包管理器

    xrepo 是一个基于 Xmake 的跨平台 C/C++ 包管理器. 项目源码 官方文档 它基于 xmake 提供的运行时,但却是一个完整独立的包管理程序,相比 vcpkg/homebrew 此类包管 ...