zoukankan      html  css  js  c++  java
  • PyQt(Python+Qt)学习随笔:QTreeView的标题表头header相关属性

    一、概述

    在Qt Designer中,对于树型视图QTreeView,在属性在下面有专门一栏列出了跟标题相关的属性,如图:
    在这里插入图片描述
    这些属性并不是QTreeView的直接属性,而是QTreeView的header属性的子属性。

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

    2.1、headerVisible

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

    要设置视图中标题是否可见,分别用类似如下语句即可:

    self.treeView.header().setVisible(True)
    self.treeView.header().setVisible(True)
    
    2.2、headerCascadingSectionResizes属性

    headerCascadingSectionResizes属性对应QHeaderView的CascadingSectionResizes属性,
    CascadingSectionResizes属性用于控制当用户调整标题的区域(sections)大小达到其最小值时,是否将界面交互式大小调整级联到下一区域。关于这个属性大家可以参考《PyQt(Python+Qt)学习随笔:QHeaderView的CascadingSectionResizes属性》相关的介绍。
    可以调用方法cascadingSectionResizes()、setCascadingSectionResizes(bool enable)来访问或设置该属性。

    案例

    self.treeView.header().setCascadingSectionResizes(True)
    
    2.3、headerDefaultSectionSize属性

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

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

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

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

    2.4、headerHighlightSections属性

    headerHighlightSections属性对应QHeaderView的highlightSections属性,highlightSections属性用于控制当选择了QTreeView视图中数据项时,对应的表头区域是否高亮。

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

    self.treeView.header().setHighlightSections(True)
    

    注意:

    老猿在使用QFileSystemModel来与QTreeView配套验证该功能时发现该功能不起作用,经验证测试与QTreeView的sortingEnabled属性相关,只有在sortingEnabled属性为True时高亮才起作用。

    2.5、headerMinimumSectionSize属性

    headerMinimumSectionSize属性对应QHeaderView的minimumSectionSize属性,该属性用于控制表头各字段区域的最小大小。

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

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

    2.6、headerShowSortIndicator属性

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

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

    1. 在首次显示视图时,默认显示在第一列的标题上,但此时如果应用数据未进行排序处理,实际显示数据是按数据生成顺序显示,不一定是有序的;
    2. 当点击标题时,排序标记会变化,但视图中的数据无变化,如果需要变化,应用需要进行调整。调整的方案是接收视图表头的sortIndicatorChanged信号,在信号处理中对数据进行排序处理,连接信号的示例代码如下:
    self.treeView.header().sortIndicatorChanged.connect(self.sortTrigged)
    

    上述代码中sortTrigged是槽函数。

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

    示例代码

    self.treeView.header().setSortIndicatorShown(True)
    
    2.7、headerStretchLastSection属性

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

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

    老猿Python,跟老猿学Python!

  • 相关阅读:
    获取字符串出现的次数
    手机号码正则表达式验证
    DOM: EVENT FLOW
    AsyncCallback 异步回调委托
    高德地图
    我的json
    Arrow function restore
    constructor&object 的联系与对比
    for each/in/of的解释and example
    program发展史及以后预测
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/12235109.html
Copyright © 2011-2022 走看看