qss中设置QTreeView选中项样式
Setting QTreeView selected item style in qss
我需要更改 QTreeView 上所选项目的背景颜色。
我已经尝试使用 this example and this Stack Overflow 问题。
应用于 ::branch 子控件的样式工作正常,但 ::item 子控件中的 none 命令工作。
应用于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;
}
这是我的结果:
我想要这样的结果:
谁能帮帮我,先谢谢了。
您只想让您的分支选择颜色与您的项目相匹配?
QTreeView::branch:selected {
background:
}
QTreeView::branch:selected:active {
background:
}
QTreeView::branch:selected:!active {
background:
}
等...
经过一番研究,我在 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 版本。
我需要更改 QTreeView 上所选项目的背景颜色。 我已经尝试使用 this example and this Stack Overflow 问题。
应用于 ::branch 子控件的样式工作正常,但 ::item 子控件中的 none 命令工作。
应用于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;
}
这是我的结果:
我想要这样的结果:
谁能帮帮我,先谢谢了。
您只想让您的分支选择颜色与您的项目相匹配?
QTreeView::branch:selected {
background:
}
QTreeView::branch:selected:active {
background:
}
QTreeView::branch:selected:!active {
background:
}
等...
经过一番研究,我在 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 版本。