简述
QTreeView 作为一个树形控件,我们经常用到,只要对样式熟悉,可以做出特别漂亮的特效。
自定义 QTreeView
交替行的背景色可以使用下面样式代码来定义:
QTreeView {
alternate-background-color: yellow;
}
当鼠标划过 item 时,如果要提供一个特殊的背景色,可以使用 ::item
辅助控制,例如:
QTreeView {
show-decoration-selected: 1;
}
QTreeView::item {
border: 1px solid #d9d9d9;
border-top-color: transparent;
border-bottom-color: transparent;
}
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
辅助控制。当绘制一个 branch 时,下述的样式颜色实现了一系列状态。
QTreeView::branch {
background: palette(base);
}