QT表格QTableWidget在win10下纵横表头无分隔线的问题 |
您所在的位置:网站首页 › pyqt5添加分割线 › QT表格QTableWidget在win10下纵横表头无分隔线的问题 |
一.问题
最近在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 |