首页 > 编程语言 >PySide6(Qt for Python) QTableWidget表头边框线问题

PySide6(Qt for Python) QTableWidget表头边框线问题

时间:2023-06-17 17:46:07浏览次数:43  
标签:Qt Python QTableWidget 表头 solid QTableCornerButton E5E5E5 border

这个问题是在Windows10平台下特有问题。

网络上有很多Qt C++的解决方案。但是没有特定的PySide6的解决方案(以下是参考的Qt C++的解决方案)。
链接:https://blog.csdn.net/qq_22642239/article/details/122863344

问题描述

C++的解决方案是设置纵横表头的样式表:horizontalHeader,verticalHeader来解决问题。
C++的解决方案思路是可以借鉴的。但是在处理QTableCornerButton的样式的时候出现问题。
在转换到Python方案的时候,发现horizontalHeader,verticalHeader的QHeaderView样式是生效的。但是QTableCornerButton是不生效的,甚至会影响verticalHeader的QHeaderView样式。

发现

后来我看到样式表的内容,这样式表项的名称有些不太对头。QTableCornerButton?
QTableCornerButton这个按钮是纵横表头共有的一个东西,那为什么只在verticalHeader中设置样式?
我就考虑QTableCornerButton样式是否依赖于verticalHeader?
后续我用pyside6-designer将样式表套用到QTableWidget里面,发现样式表是没问题的。

探索

经过探索,这个问题的解决是可以不需要单独设置horizontalHeader,verticalHeader的样式。
这个问题是QTableWidget的展示问题,直接对QTableWidget进行样式表修改就OK了!

QTableCornerButton它自己处理右下的边框线(相对初始纵横表头左上边框线)
纵横表头只需要处理好自己的右下边框线就能组成完整的边框线。(QHeaderView样式直接对QTableWidget负责,纵横表头就会套用这个样式,不需要单独设置)

实际代码与效果(tableWidget_product是我的QTableWidget实例):

self.__ui.tableWidget_product.setStyleSheet(
            'QTableCornerButton::section{'
            'border-top:0px solid #E5E5E5;'
            'border-left:0px solid #E5E5E5;'
            'border-right:0.5px solid #E5E5E5;'
            'border-bottom: 0.5px solid #E5E5E5;'
            'background-color:white;'
            '}'
            "QHeaderView::section{"
            "border-top: 0px solid #E5E5E5;"
            "border-left: 0px solid #E5E5E5;"
            "border-right: 0.5px solid #E5E5E5;"
            "border-bottom: 0.5px solid #E5E5E5;"
            "background-color:white;"
            "padding:4px;"
            "}"
        )


版权声明:本文为博客园博主「 StarDarkMonarch」的原创文章
原文链接: https://www.cnblogs.com/freedom-eagle/p/17487771.html
遵循CC BY-NC-SA 4.0版权协议,转载请附上原文出处链接及本声明。
协议链接:https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh

标签:Qt,Python,QTableWidget,表头,solid,QTableCornerButton,E5E5E5,border
From: https://www.cnblogs.com/freedom-eagle/p/17487771.html

相关文章

  • Python中eval 与 exec 函数的区别
    eval和exec都是Python内置函数,并且都能把字符串当作代码执行,那区别是什么呢?eval函数只能计算单个表达式的值,而exec函数可以动态运行代码段;exec函数能直接执行文件中的Python代码,eval函数不能实现这个功能;eval函数可以有返回值,而exec函数返回值永远为None;举......
  • Python潮流周刊#7:我讨厌用 asyncio
    你好,我是猫哥。这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)首发于我的博客:https://pythoncat.top/posts/2023-06-17-weekly7......
  • Python如何爬取京东mac电脑的数据?全球HTTP代理应用
    618要来了,不买点啥总觉得少了点什么,正好我用了5 6 年的电脑想换,这可不就来活了嘛!我们用Python也能简单获取某东上的mac电脑价格。不整虚的,直接就是一个冲,来看代码:importrequestsfrombs4importBeautifulSoupdefget_jd_laptops():url="https://search.jd.com/Search......
  • python之shutil模块
    shutil可以简单的理解为sh+util,是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压缩等操作。1复制复制文件:importshutil#从src文件路径复制数据到dst,复制成功后返回dst完整路径,src、dst是文件路径不能是文件目录。如果当前的dst已存在的话就会被覆盖掉shuti......
  • Python 字符编码转换(转载)
    Python字符编码转换1.在python2默认编码是ASCII,python3里默认是unicode2.unicode分为utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),soutf-16就是现在最常用的unicode版本,不过在文件里存的还是utf-8,因为utf8省空间3.在py3中encode,在转码的同时......
  • Python3网络爬虫开发实战阅读笔记
    基本库的使用网络请求库urllib(HTTP/1.1)Python自带请求库,繁琐基础使用:略requests(HTTP/1.1)Python常用第三方请求库,便捷基础使用:略httpx(HTTP/2.0)Python第三方库,支持HTTP/2.0,支持异步请求,支持Python的async请求模式pipinstall'httpx[http2]'基础使用:与requests相似,默认......
  • python unitest 测试装置(Test Fixture)
    unittest框架提供了测试装置(TestFixture)的功能,用于在测试用例执行前后进行准备和清理操作。测试装置包括setUp()方法和tearDown()方法,分别用于在每个测试用例执行前和执行后进行相应的操作。下面是一个示例,演示如何使用测试装置:importunittestclassMyTestCase(unittest.Te......
  • python unitest 测试运行器(Test Runner)
    测试运行器(TestRunner)是unittest框架提供的执行测试用例的组件,用于自动运行测试用例并生成测试结果报告。它负责加载测试用例、执行测试用例,并提供测试结果的输出。unittest框架提供了多种测试运行器,包括TextTestRunner、HTMLTestRunner、XMLTestRunner等。这些运行器可以根据不......
  • python 断言方法
    assertEqual(a,b):判断a和b是否相等。self.assertEqual(2+2,4)#通过self.assertEqual('hello','world')#失败,抛出AssertionErrorassertNotEqual(a,b):判断a和b是否不相等。self.assertNotEqual(2+2,5)#通过self.assertNotEqual('hello',�......
  • python unitest 测试套件TestSuite()
    unittest框架提供了多种测试套件的使用方法,用于组织和执行测试用例。以下是一些常见的测试套件使用方法及其示例:1.使用unittest.TestSuite()创建测试套件,然后使用addTest()方法添加测试用例。importunittestclassMyTestCase(unittest.TestCase):deftest_addition(self):......