【问题标题】:Setting QTreeView selected item style in qss在 qss 中设置 QTreeView 选定项样式
【发布时间】:2016-03-15 06:16:05
【问题描述】:

我需要在 QTreeView 上更改 所选项目 的背景颜色。 我已经尝试过使用this 示例和this Stack Overflow 问题。

应用于 ::branch 子控件的样式可以正常工作,但 ::item 子控件中的所有命令都不起作用。

应用于 QTreeView 的 QSS :

QTreeView {
   show-decoration-selected: 1;
}

QTreeView::item {
     border: 1px solid #d9d9d9;
    border-top-color: transparent;
    border-bottom-color: transparent;
     background: rgb(255, 0,0);
}

QTreeView::item:hover {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
    border: 1px solid #bfcde4;
}

QTreeView::item:selected {
    border: 1px solid #567dbc;
}

QTreeView::item:selected:active{
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1, stop: 1 #567dbc);
}

QTreeView::item:selected:!active {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6b9be8, stop: 1 #577fbf);
}

QTreeView::branch {
        background: palette(base);
}

QTreeView::branch:has-siblings:!adjoins-item {
        background: cyan;
}

QTreeView::branch:has-siblings:adjoins-item {
        background: red;
}

QTreeView::branch:!has-children:!has-siblings:adjoins-item {
        background: blue;
}

QTreeView::branch:closed:has-children:has-siblings {
        background: pink;
}

QTreeView::branch:has-children:!has-siblings:closed {
        background: gray;
}

QTreeView::branch:open:has-children:has-siblings {
        background: magenta;
}

QTreeView::branch:open:has-children:!has-siblings {
        background: green;
}

这是我的结果:

我想要这样的结果:

谁能帮帮我,提前谢谢。

【问题讨论】:

    标签: c++ qt qtstylesheets


    【解决方案1】:

    经过一番研究,我在 Qt 邮件列表中得到了答案。使用以下 QStylesheet 完成所需的效果:

    QTreeView {
        background-color: transparent;
        selection-background-color: green; /* Used on Mac */
        selection-color: white; /* Used on Mac */
        show-decoration-selected: 1;
    }
    
    QTreeView::item:selected {
        background-color: green; /* Used on Windows */
        color: white;
    }
    

    改变风格的Mac线条,即使我在Windows上,也不知道是我的windows版本的bug,还是这个Qt版本的bug。

    【讨论】:

    • ty,我忘了 :)
    【解决方案2】:

    您只是希望您的分支选择颜色与您的项目匹配?

    QTreeView::branch:selected {
      background:
    }
    
    QTreeView::branch:selected:active {
      background:
    }
    
    QTreeView::branch:selected:!active {
      background:
    }
    

    等等……

    【讨论】:

    • 不,我想给整个项目上色,就像附图一样,顺便说一句,我已经解决了这个问题,我会发布解决方案。
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 2019-04-10
    • 2013-01-18
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多