Как я могу скрыть границу для qtreeview?

Я хочу скрыть границу QTreeWidget, которую я настраиваю.

Я хочу, чтобы это было то же самое, когда я выбираю элемент внутри. Но этот специальный план вообще не работает. Я хочу, чтобы это было так же, как первое изображение.

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

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

Я использую этот фрагмент кода CSS:

QTreeView  {
    show-decoration-selected: 0;
    background: transparent;
}

QTreeView::item:selected
{
    background-color: #00CDDF;
    font-weight: bold;
    outline: none;
}


QTreeView::branch:selected {
    background-color: #00CDDF;
    outline: none
}

person Darkgaze    schedule 15.04.2013    source источник


Ответы (4)


Граница и контур - разные вещи. Посмотрите на это. Outline — это отдельное свойство, для которого по умолчанию установлено значение none. Видимая линия вокруг вашего QTreeView — это свойство border, которое имеет некоторое значение по умолчанию.

Если вы хотите удалить границу, попробуйте установить свойство границы, например это.

QTreeView {
     border: none;
}

Для удаления границы на определенной стороне,

QTreeView {
     border: 1px solid;
     border-top: none;
}

Для выбранного элемента вы можете использовать этот селектор, QTreeView::item, для активного элемента(ов) QTreeView::item:selected:active и для выбранного элемента(ов) QTreeView::item:selected.

person smitrp    schedule 15.04.2013

Может вот так?

QTreeView
{
  border: none;
}

or

QTreeView > QScrollArea
{
  border: none;
}
person Dmitry Sazonov    schedule 15.04.2013
comment
Ух ты. что такое QTreeView › QScrollArea? это то же самое, что и QScrollArea QTreeView {}? - person Darkgaze; 15.04.2013
comment
Нет. QTreeView содержит внутри себя QScrollArea. - person Dmitry Sazonov; 15.04.2013
comment
Прости. я имею в виду, QTreeView QScrollArea означает область прокрутки внутри древовидного представления. Зачем использовать › ? - person Darkgaze; 16.04.2013
comment
Вы можете прочитать о селекторах здесь: ссылка - person Dmitry Sazonov; 17.04.2013
comment
О спасибо Дмитрий. Так что они прямые потомки. Не обязательно, но интересно. Большое спасибо :) - person Darkgaze; 18.04.2013

Для выбранных элементов следующее работает лучше для меня:

  QString style = "QTreeWidget::item:!selected "
    "{ "
      "border: 1px solid gainsboro; "
      "border-left: none; "
      "border-top: none; "
    "}"
    "QTreeWidget::item:selected {}";
  treeWidget->setStyleSheet(style);
person Aleksey Kontsevich    schedule 29.12.2014

Для выбранных элементов у меня лучше работает такая таблица стилей:

  QString style = "QTreeWidget::item:!selected "
    "{ "
      "border: 1px solid gainsboro; "
      "border-left: none; "
      "border-top: none; "
    "}"
    "QTreeWidget::item:selected {}";
  allergiesListView->setStyleSheet(style);
person Aleksey Kontsevich    schedule 29.12.2014