我在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)
我希望更改边框和/或背景颜色,以使框更可见,而不是与深色背景树视图融合。
编辑:我向设计师添加了颜色样式表,这也取消了我的复选框。我的目标仍然是相同,使复选框更加可见。
答案 0 :(得分:1)
由于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)
我希望这可以帮助正在使用样式表的人。