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です。あなたの周りの目に見える線は、QTreeViewいくつborderかのデフォルト値を持つプロパティです。

境界線を削除したい場合は、次のように境界線プロパティを設定してみてください

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 に答える