Изменить стиль флажка в QTreeWidget, не затрагивая флажки в Maya? - PullRequest
0 голосов
/ 12 февраля 2019

У меня возникают проблемы при стилизации моих флажков tristate с детьми в моем QtWidgets.QTreeWidget ()

Я пытаюсь использовать:

css ='''
QTreeView {background-color: #1e1e1e;} 
QTreeView::indicator {border: 1px solid white;}
'''
self.file_tree.setStyleSheet(css)

Цвет фона меняется отлично.Но, как только я добавляю сплошную границу или пытаюсь изменить цвет фона флажка, чеки с тремя состояниями больше не видны.Старые стили больше не применяются.У меня нет доступа или я не знаю, как получить доступ к ресурсам QT, поскольку у Maya есть собственная версия с разными изображениями.т.е. флажок png.

Добавление родительских каталогов дерева с помощью:

parent_widget = DirectoryTreeWidgetItem(parent_widget)
parent_widget.setText(0, self.base_name)
parent_widget.setFlags(parent_widget.flags() | QtCore.Qt.ItemIsTristate | QtCore.Qt.ItemIsUserCheckable)

Добавление QTreeWidetItems через:

# add the items
for child_file in self.child_files:
    # child = QtWidgets.QTreeWidgetItem(parent_widget)
    child = AssetTreeWidgetItem(parent_widget)
    child.setFlags(child.flags() | QtCore.Qt.ItemIsUserCheckable)
    child.setText(0, os.path.basename(child_file))
    child.setCheckState(0, QtCore.Qt.Unchecked)
    child.setFilePath(child_file)

Я хочу изменить границу и / или цвет фоначтобы сделать рамки более заметными, а не сливаться с темным фоном в виде дерева.

Редактировать: Я добавил таблицу стилей цвета в конструктор, и это также убило мой флажок.Моя цель все та же, сделать флажок более заметным.

1 Ответ

0 голосов
/ 13 февраля 2019

Поскольку setStyleSheet переопределяет текущий стиль, я смог добиться результатов, которые искал, используя QtGui.QPalette():

    file_tree_palette = QtGui.QPalette()
    file_tree_palette.setColor(QtGui.QPalette.Window, QtGui.QColor(255, 255, 255))
    file_tree_palette.setColor(QtGui.QPalette.Base, QtGui.QColor(30, 30, 30))
    file_tree_palette.setColor(QtGui.QPalette.Highlight, QtGui.QColor(93, 93, 93))
    self.file_tree.setPalette(file_tree_palette)

Я надеюсь, что это может помочь кому-то, кто работает с таблицами стилей.

...