QTableView样式设置过程中的问题解析

24 篇文章 1 订阅
5 篇文章 0 订阅

一、设置QHeaderView表头时可能遇到的问题

在设置QTableView的表头QHeaderView的qss样式时,我们和容易在Qt帮助文档或互联网找到其qss样式,例如类似下面的样式代码:

QHeaderView
{
    font-size: 12px;
    color: rgb(255, 255, 255);
    max-height: 30px;
    min-height: 30px;
}

QHeaderView::section
{
    background-color: rgb(29, 29, 36);
    height: 48px;
    border: solid 1px rgba(0, 0, 0, 100%);
}

QHeaderView::down-arrow
{
    image: url(:/icons/resource/sort-down.png);
    subcontrol-position: center right;
}

QHeaderView::up-arrow
{
    image: url(:/icons/resource/sort-up.png);
    subcontrol-position: center right;
}

使用上面的样式后,字体、颜色、边框、高度等都发生了变化,但是排序标志死活不出来,晚上加班搞了好久,都不行,快要怀疑人生了。

解决方案:使能表格的排序功能

方法一:

void setSortingEnabled(bool enable)

方法二:

在qt designer中设置表格的SortingEnabled属性为true

 

二、设置表格相邻行颜色不同的样式

通过如下方式,设置相邻行颜色的样式,但是不生效。

QTableView
{
    color: rgb(255, 255, 255);
    background-color: rgb(24, 24, 30);
    alternate-background-color: rgb(20, 20, 25); /*相邻行颜色不同*/
    border: 1px solid rgb(63, 63, 72);
    gridline-color: rgb(24, 24, 30);
}

原因:没有使能表格这一属性

解决方案:使能表格这一属性

方法:

void setAlternatingRowColors(bool )

三、设置表格的图片在表格背景中央

关注qss加星的三行

QTableView[type="tb_resource"]
{
    background-image: url(:icons/device_mgr/no_device.png); /* ★★★ */
    background-repeat: no-repeat; /* ★★★ */
    background-position: center center; /* ★★★ */
    border: none;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值