使用交替颜色的 Qt QListWidget 项目

4
我想在一个QListWidget中实现像棋盘一样的格子图案。例如,列表中的第一项具有深灰色背景,而列表中的第二项具有浅灰色背景,并且依此类推。有没有简单的方法可以实现这个功能?
我知道可以通过创建一个类,扩展QListWidget,然后每次更新列表时设置样式来实现它,但我正在寻找可能最简单的方法。任何答案都会很有帮助。
3个回答

10
 listWidget->setAlternatingRowColors(true);

这是Qt的内置属性。

如果您使用设计师:

在此输入图片描述


搞定了。然后我只需要在CSS中设置“:alternate”伪状态。非常感谢! - David Ludwig
不是的。你也应该看一下DNamto的回答。使用setStyleSheet来调整交替颜色的类型更加简单。 - Tay2510
我总是尽可能使用样式表。我更喜欢“:alternate”伪状态。我认为这可以使事情更有条理。 - David Ludwig

5

我相信这应该可以工作

myList->setAlternatingRowColors(true);
myList->setStyleSheet("alternate-background-color: white;background-color: black;");

0

在样式表中使用伪状态-:alternate

示例:

QListView::item {
    background-color: #1C80A6;
    color: white;}
QListView::item:alternate {
    background-color: white;
    color: #1C80A6;}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接