문제

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
}
도움이 되었습니까?

해결책

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.

다른 팁

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top