qtreewidgetitem设置背景颜色
时间: 2023-09-22 22:06:57 浏览: 205
可以使用QTreeWidgetItem的setBackground方法来设置背景颜色,如下所示:
```python
item = QTreeWidgetItem()
item.setText(0, "Item 1")
brush = QBrush(QColor(255, 0, 0)) # 红色背景
item.setBackground(0, brush)
```
也可以使用QTreeWidgetItem的setBackgroundColor方法来设置背景颜色,如下所示:
```python
item = QTreeWidgetItem()
item.setText(0, "Item 1")
item.setBackgroundColor(0, QColor(255, 0, 0)) # 红色背景
```
注意:QTreeWidgetItem的setBackground方法和setBackgroundColor方法只能设置单个单元格的背景颜色,如果需要设置整个行的背景颜色,需要使用QTreeWidgetItem的setBackground方法设置每个单元格的背景颜色。
相关问题
QT在QTreeWidget中设置节点背景颜色,请给我完整代码
下面是一个例子,演示如何在QTreeWidget的节点中设置背景颜色:
```python
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
from PyQt5.QtGui import QColor
app = QApplication([])
# 创建QTreeWidget和根节点
tree_widget = QTreeWidget()
root_node = QTreeWidgetItem(tree_widget)
root_node.setText(0, "Root")
# 创建子节点并设置背景颜色
child_node1 = QTreeWidgetItem(root_node)
child_node1.setText(0, "Child 1")
child_node1.setBackground(0, QColor("yellow"))
child_node2 = QTreeWidgetItem(root_node)
child_node2.setText(0, "Child 2")
child_node2.setBackground(0, QColor("green"))
# 显示QTreeWidget
tree_widget.show()
app.exec_()
```
运行这个代码,你将看到一个带有两个子节点的树形列表,每个子节点都有不同的背景颜色。
QT在QTreeWidget中设置节点击鼠标左键单选中时修改其颜色,请给我完整代码
好的,以下是在QTreeWidget中设置节点击鼠标左键单选中时修改其颜色的完整代码:
``` python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTreeWidget, QTreeWidgetItem
from PyQt5.QtGui import QColor
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.tree_widget = QTreeWidget(self)
self.setCentralWidget(self.tree_widget)
# 添加根节点
root = QTreeWidgetItem(self.tree_widget)
root.setText(0, "Root")
# 添加子节点
child1 = QTreeWidgetItem(root)
child1.setText(0, "Child 1")
child2 = QTreeWidgetItem(root)
child2.setText(0, "Child 2")
# 设置根节点和子节点的背景颜色
self.tree_widget.setStyleSheet("""
QTreeView::item:hover { background-color: rgb(220, 220, 220); }
QTreeView::item:selected { background-color: rgb(180, 180, 180); }
""")
# 为树节点添加单击事件
self.tree_widget.itemClicked.connect(self.handle_item_clicked)
def handle_item_clicked(self, item):
# 取消选中其他节点
for i in range(self.tree_widget.topLevelItemCount()):
top_item = self.tree_widget.topLevelItem(i)
if top_item is not item.parent():
top_item.setSelected(False)
for j in range(top_item.childCount()):
child_item = top_item.child(j)
if child_item is not item:
child_item.setSelected(False)
# 设置选中节点的背景颜色
item.setBackground(0, QColor(0, 255, 0))
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这段代码中,我们创建了一个QTreeWidget并向其中添加了根节点和两个子节点。我们使用setStyleSheet()方法为根节点和子节点设置了鼠标悬停和选中时的背景颜色。并且我们为树节点添加了单击事件,当节点被单击时,我们取消选中其他节点并将选中节点的背景颜色设置为绿色。