Qt: QListWidget项目之间的分隔线?

4

我找不到在列表项之间添加分隔线的方法。我是不是漏掉了什么?

2个回答

14

最简单的方式是使用样式表:

myListWidget->setStyleSheet( "QListWidget::item { border-bottom: 1px solid black; }" );

您需要查看一些样式表文档


1
啊,太好了。我在文档中错过了这个。这是一个非常不错的功能。 - jbrennan

2

对已接受答案的两点改进:

  1. 使用窗口小部件的颜色调色板,以在不同系统中实现统一外观。
  2. 在重新设置 item 样式时,需要恢复 item:selected 样式。

例如:

const auto & palette = tableWidget.palette();
tableWidget.setStyleSheet(QString("QListWidget::item { border-bottom: 1px solid %1; } QListWidget::item:selected { background-color: %2; color: %3; }")
    .arg(palette.midlight().color().name(),
         palette.highlight().color().name(),
         palette.highlightedText().color().name()));

在这里,您可以看到分隔线和选定颜色符合小部件的默认样式:

enter image description here


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