QTableWidget 表头单元格不显示分隔线的问题

背景

Qt 绘制控件样式会使用当前系统风格的 UI 显示样式。

问题描述

①.概述

QTableWidget 表格控件在 Win10 系统下横向和纵向表头没有底部分隔线,如下图所示:

在这里插入图片描述

②.原因

导致该现象的原因是因为 Qt 绘制控件样式会使用当前系统风格的UI显示样式,Win10 系统表格样式如下:

在这里插入图片描述

绘制分隔线

①.概述

通过设置表头的 StyleSheet 根据需要绘制上下左右四个边界线。

②.横向表头

ui.tableWidget->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;"
  "}"
);

在这里插入图片描述

③.纵向表头

ui.tableWidget->verticalHeader()->setStyleSheet(
  "QHeaderView::section{"
  "border-top:0.5px solid #E5E5E5;"
  "border-left:0px solid #E5E5E5;"
  "border-right:0.5px solid #E5E5E5;"
  "border-bottom: 0px solid #E5E5E5;"
  "background-color:white;"
  "padding:4px;"
  "}"
);

在这里插入图片描述

设置界面风格

①.QStyleFactory

QStyleFactory 类用于创建 QStyle,其静态方法 keys 可以获取当前支持的所有界面风格。

for (auto & key : QStyleFactory::keys())
{
  qDebug() << key;
}

在这里插入图片描述

②.设置界面风格

通过 QApplication 的 setStyle 方法可以设置界面显示风格。

QApplication::setStyle(QStyleFactory::create("Fusion"));

在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值