0

我想隐藏我正在定制的 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
}
4

4 回答 4

4

边框和轮廓是不同的东西。看看这个Outline是单独的属性,none默认设置为。您周围的可见线QTreeViewborder具有一些默认值的属性。

如果要删除边框,请尝试像这样设置边框属性。

QTreeView {
     border: none;
}

要删除特定侧的边框,

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

对于所选项目,您可以使用此选择器 ,QTreeView::item用于活动项目QTreeView::item:selected:active和所选项目QTreeView::item:selected

于 2013-04-15T09:30:06.203 回答
1

也许像这样?

QTreeView
{
  border: none;
}

或者

QTreeView > QScrollArea
{
  border: none;
}
于 2013-04-15T09:12:42.553 回答
0

对于选定的项目,以下对我来说效果更好:

  QString style = "QTreeWidget::item:!selected "
    "{ "
      "border: 1px solid gainsboro; "
      "border-left: none; "
      "border-top: none; "
    "}"
    "QTreeWidget::item:selected {}";
  treeWidget->setStyleSheet(style);
于 2014-12-29T00:51:57.787 回答
0

对于选定的项目,这样的样式表对我来说效果更好:

  QString style = "QTreeWidget::item:!selected "
    "{ "
      "border: 1px solid gainsboro; "
      "border-left: none; "
      "border-top: none; "
    "}"
    "QTreeWidget::item:selected {}";
  allergiesListView->setStyleSheet(style);
于 2014-12-29T00:55:37.617 回答