PyQt:重置或删除QTreeWidgetItem的背景色

2024-04-30 02:36:03 发布

您现在位置:Python中文网/ 问答频道 /正文

如何删除QTreeWidgetItem的背景色,或将其重置为默认值?在

treeWidgetItem.setBackgroundColor(0, QtGui.QColor('green'))

Tags: green重置qtgui背景色qcolorsetbackgroundcolortreewidgetitemqtreewidgetitem
3条回答

我不确定是否有任何方法可以使用setBackgroundColor,但我会使用setStyleSheet。在

样式表与每个QtGui小部件配合使用,总体上更易于使用。在

如果要将QTreeWidget背景色设置为绿色:

    self.TreeWidgetItem = QtGui.QTreeWidgetItem()
    self.TreeWidgetItem.setStyleSheet("background-color: green;")

如果要重置QTreeWidget的样式表,只需键入以下命令:

^{pr2}$

这将重置任何小部件的颜色为默认颜色,而不会给出任何异常。在

另外,使用qt样式表系统也是一个很好的实践,它很简单,而且有很多优点。在

默认值可能取决于操作系统和其他因素。在

因为你用

treeWidgetItem.setBackgroundColor(0, QtGui.QColor('green'))

你也可以先读出默认的画笔

^{pr2}$

当你想回到默认值时,把它设置回这个值。在


旁注:在qt5.6中似乎没有setBackgroundColor的方法QTreeWidgetItems,只有setBackground。因此,解决方案可能稍微依赖于使用的Qt版本。在

你可以用这个来获得背景色:

treeWidgetItem.background(0)

返回如下内容:

^{pr2}$

现在把它放到一个字符串中,然后你就得到了答案。在

originalBG = treeWidgetItem.background(0)

# New background
treeWidgetItem.setBackgroundColor(0, QtGui.QColor('green'))

# Old background
treeWidgetItem.setBackgroundColor(0, originalBG)

相关问题 更多 >