QT表格QTableWidget在win10下纵横表头无分隔线的问题

您所在的位置:网站首页 pyqt5添加分割线 QT表格QTableWidget在win10下纵横表头无分隔线的问题

QT表格QTableWidget在win10下纵横表头无分隔线的问题

2023-07-20 14:42| 来源: 网络整理| 查看: 265

一.问题

最近在Win10 下使用QT开发界面程序,遇到了一个问题,在使用QTableWidget 表格式出现了以下问题,如图:

为什么左边表头中间 每行之间没有分割线,其实上面表头下面的线默认也是没有的,是后来加上去的,这个间隔线在其它版本系统上是存在的。

这个问题很早就遇见过,一直没有找到解决方法,今天在搜索资料时,偶然在网上看见了一片文章,对解决此问题帮助很大。

二.导致该问题的原因

为什么纵横表头会没有分隔线呢,在网上查阅了一些资料,原来是因为win10的风格如此,在其它版本系统上是不存在这样的问题的,在Windows 10上,绘制图元不会绘制底部边框(这是默认的Windows 10表头样式 - 可以在Windows文件资源管理器中看到)。QT会使用当前系统风格的UI显示样式,这也可以理解

三.添加分隔线

下面就着手解决该问题,在win10下手动设置表格 纵横头的间隔线,如下代码,可以在代码中直接使用设置自己的QTableWidget对象

//如下代码设置横向表格头的间隔线,有四个方向的间隔线,不需要间隔线的可以设置为0px ui.myTableWidget->horizontalHeader()->setStyleSheet( "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;" "}" ) //如下代码设置横向表格头的间隔线,有四个方向的间隔线,不需要间隔线的可以设置为0px ui.myTableWidget->verticalHeader()->setStyleSheet( "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;" "}" ) //如下代码设置列表左上角第0行第0列的那个格子的边框线 ui.myTableWidget->verticalHeader()->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;" "}" )

参考文章:在QTableWidget中的列标题下添加边框 - Thinbug



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3