Frage

I want to hide the border of the QTreeWidget i´m customizing.

I want it to be the same when i select an item inside. But this special outline doesn´t work at all. I want it to be the same as the first image.

enter image description here

enter image description here

I use this piece of css code:

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
}
War es hilfreich?

Lösung

Border and outline are different things. Look at this. Outline is separate property which is set to none by default. The visible line around your QTreeView is border property which has some default value.

If you want to remove border, try to set border property like this.

QTreeView {
     border: none;
}

For removing border on specific side,

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

For selected item you can use this selector, QTreeView::item, for active item(s) QTreeView::item:selected:active and for selected item(s) QTreeView::item:selected.

Andere Tipps

Maybe like this?

QTreeView
{
  border: none;
}

or

QTreeView > QScrollArea
{
  border: none;
}

For selected items following works better for me:

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

For selected items such style-sheet works better for me:

  QString style = "QTreeWidget::item:!selected "
    "{ "
      "border: 1px solid gainsboro; "
      "border-left: none; "
      "border-top: none; "
    "}"
    "QTreeWidget::item:selected {}";
  allergiesListView->setStyleSheet(style);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top