Qt:QListWidget项之间的分隔线?

时间:2011-10-15 20:24:05

标签: qt qlistwidget

我找不到任何方法在列表中的项目之间添加一行。我错过了什么吗?

2 个答案:

答案 0 :(得分:11)

样式表最简单,例如:

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

您需要查看一些style sheet documentation

答案 1 :(得分:1)

对接受的答案有2处改进:

  1. 使用小部件的调色板在不同系统上实现统一外观。
  2. 重新设置item:selected的样式时,必须恢复item样式

例如像这样:

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