如何隐藏qtreeview的边框?

时间:2013-04-15 08:23:10

标签: qt qt4 qtreeview qtreewidget qtstylesheets

我想隐藏QTreeWidget的边框我正在定制。

当我在里面选择一个项目时,我希望它是一样的。但是这个特殊的大纲根本不起作用。我希望它与第一张图像相同。

enter image description here

enter image description here

我使用这段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 个答案:

答案 0 :(得分:3)

边界和轮廓是不同的东西。看看thisOutline是单独的属性,默认情况下设置为noneQTreeView周围的可见行是border属性,其中包含一些默认值。

如果要删除边框,请尝试设置this等边框属性。

QTreeView {
     border: none;
}

要删除特定边的边框,

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

对于所选项目,您可以将此选择器QTreeView::item用于有效商品QTreeView::item:selected:active和所选商品QTreeView::item:selected

答案 1 :(得分:1)

也许是这样的?

QTreeView
{
  border: none;
}

QTreeView > QScrollArea
{
  border: none;
}

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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