QTreeView 'show-decor-selected: 0;' не имеет никакого эффекта - PullRequest
0 голосов
/ 28 февраля 2020

Я бегу PyQt4 и пытаюсь сделать QTreeWidget без цвета украшения на выбранных предметах. Однако следующий код не имеет никакого эффекта, и цвет левой стороны QTreeWidgetItem по-прежнему окрашивается при выделении.

from PyQt4 import QtGui, QtCore


class MainWindow(QtGui.QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.mainLayout = QtGui.QVBoxLayout(self)
        self.setLayout(self.mainLayout)

        self.tree = QtGui.QTreeWidget()
        self.mainLayout.addWidget(self.tree)
        for i in range(20):
            item = QtGui.QTreeWidgetItem(self.tree)
            item.setText(0, 'This Is Item #{}'.format(i))
            for i in range(4):
                child_item = QtGui.QTreeWidgetItem(item)

        self.tree.setStyleSheet('''
            QTreeView{
                show-decoration-selected: 0;
            }
        ''')


if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    win = MainWindow()
    win.show()
    sys.exit(app.exec_())

1 Ответ

1 голос
/ 02 марта 2020

Вы можете установить цвет выделения и цвет фона на QTreeView::item и установить фон для QTreeView::branch. Однако, когда вы переопределяете фон ветви, вам нужно будет включить изображение, используемое для стрелок ветви. Вот те, которые предоставлены Qt.

закрытым филиалом - branch closed

открытым филиалом - enter image description here

QTreeView::item {
    selection-color: #000;
    selection-background-color: rgba(0, 0, 0, 0%);
}
QTreeView::branch:selected:closed {
    background: white;
    image: url(branch-closed.png);
}
QTreeView::branch:selected:open {
    background: white;
    image: url(branch-open.png);
}
...