QlsitWidget列表设置交替背景色

时间:2022-10-09 14:47:28

所有继承自QAbstractItemView的QT类都可以通过setAlternatingRowColors(boolenable)设置列表项颜色交替变化。

通过给stylesheet设置alternate-background-color: rgb(27, 27, 27);可以设置列表项交替时偶数行的颜色。而奇数行的颜色就是默认的列表颜色

例如

QListView{
    background: rgb(33, 33, 33);
    alternate-background-color: rgb(27, 27, 27);

}

效果如下,第一行和背景色一样,第二行变深色。

QlsitWidget列表设置交替背景色


常规的使用到此就结束了,但如果要修改奇数行颜色呢,帮助文档并没有详细说明,但在看了stylesheet之后发现了



:alternate  

This state is set for every alternate row whe painting the row of a QAbstractItemView when QAbstractItemView::alternatingRowColors() is set to true.

:alternate是交替行的颜色,也就是偶数行,那奇数行就是!alternate 

实现如下:

QListView::item:!alternate:!selected{
   background: rgb(27, 27, 27);
}这是非选中状态,选中状态下就把!selected改为selected。


到此为止我们可以设置背景色,交替奇偶数行颜色了,可以随意发挥了