Qt: разделительная строка QListWidget между элементами?

#qt #qlistwidget

#qt #qlistwidget

Вопрос:

Я не могу найти способ поместить строку между элементами в моем списке. Я что-то упускаю?

Ответ №1:

Таблица стилей была бы проще всего, например:

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

Вы захотите взглянуть на некоторую документацию по таблице стилей

Комментарии:

1. Ах, красиво. Я пропустил это в документации. Это действительно хорошая функция.

Ответ №2:

2 улучшения принятого ответа:

  1. Используйте цветовую палитру виджета для достижения единообразного внешнего вида в разных системах.
  2. Необходимо восстановить item:selected стиль при рестайлинге item

Например, вот так:

 const auto amp; 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()));
  

Здесь вы можете видеть, что разделительные строки и цвет выделения соответствуют стилю виджета по умолчанию:

введите описание изображения здесь