python-3.x - 如何删除 QTreeWidget 项目图标上的蓝色色调
问题描述
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from datetime import *
import sqlite3
import sys
import time
import datetime
class MyDelegateTreeWidget(QStyledItemDelegate):
def __init__(self):
QItemDelegate.__init__(self)
def sizeHint(self, option, index):
return QSize(50, 60)
class CustomizeTreeWidget(QTreeWidget):
def __init__(self):
super().__init__()
self.setColumnCount(2)
self.sizeHintForRow(50)
self.setFocusPolicy(Qt.NoFocus)
inventoryTreeWidgetFont = QFont('Helvetica', 8)
inventoryTreeWidgetFont.setBold(True)
self.setFont(inventoryTreeWidgetFont)
self.header().setMinimumSectionSize(2)
self.header().resizeSection(0, 150)
self.header().resizeSection(1, 2)
self.header().setStretchLastSection(True)
self.header().swapSections(1, 0)
self.expandToDepth(True)
self.setHeaderHidden(True)
self.setAnimated(True)
self.setUniformRowHeights(True)
self.setStyleSheet('QTreeWidget {border: none; border-image: none; background-color: rgb(240,240,240); color: rgb(80,80,80)}'
'QTreeWidget::item:hover {border: none; border-image: none; background-color: rgb(180,180,180); color: rgb(50,50,50)}'
'QTreeWidget::item:selected {border: none; border-image: none; background-color: rgb(39,39,37); color: rgb(245,245,245)}'
'QTreeWidget::branch:hover {border: none; border-image: none; background: rgb(180,180,180); color: rgb(50,50,50)}'
'QTreeWidget::branch::closed::has-children {image: url(TDLSystemPictures/OtherIcons/rightArrowIcon3.png); '
'icon-size: 1px}'
'QTreeWidget::branch::open:has-children {image: url(TDLSystemPictures/OtherIcons/downArrowIcon3.png);}'
'QTreeWidget::branch:selected {border: none; border-image: none; background: rgb(39,39,37); color: rgb(245,245,245)}')
self.setRootIsDecorated(True)
self.setIconSize(QSize(35, 30))
treeWidgetDelegate = MyDelegateTreeWidget()
self.setItemDelegate(treeWidgetDelegate)
class SystemMainPage(QWidget):
def __init__(self):
super().__init__()
self.move(400, 150)
self.setMinimumWidth(1200)
self.setMinimumHeight(800)
self.setStyleSheet('QWidget {background-color: rgb(200,200,200)}')
self.setWindowTitle('Sample')
self.mainPageLayout = QHBoxLayout()
self.mainPageLayout.setContentsMargins(0, 0, 0, 0)
self.mainPageLayout.setSpacing(0)
home_SubMenuTreeWidget = CustomizeTreeWidget()
###########################################################
# ================================ Tree Widget Item (Start)
###########################################################
#
# ================== Client Masterfile
sampleIcon = QIcon('Icon1.png')
clientMasterfileContent = QTreeWidgetItem(home_SubMenuTreeWidget, ['Item 1'])
clientMasterfileContent.setIcon(0, sampleIcon)
clientMasterfileContent.icon(25)
clientMasterfileContentLight = QFrame()
clientMasterfileContentLight.setFixedWidth(2)
clientMasterfileContentLight.setStyleSheet('QFrame {border: none; background-color: rgb(37,39,45)}')
home_SubMenuTreeWidget.setItemWidget(clientMasterfileContent, 1, clientMasterfileContentLight)
createClient_Content = QTreeWidgetItem(clientMasterfileContent, ['Item 1- A'])
# ================== Billing
color1 = QColor(255, 35, 35)
billingContent = QTreeWidgetItem(home_SubMenuTreeWidget, ['Item 2'])
billingContent.setIcon(0, QIcon('Icon2.png'))
billingContentLight = QFrame()
billingContentLight.setFixedWidth(2)
billingContentLight.setStyleSheet('QFrame {border: none; background-color: rgb(37,39,45)}')
home_SubMenuTreeWidget.setItemWidget(billingContent, 1, billingContentLight)
self.mainPageLayout.addWidget(home_SubMenuTreeWidget)
self.setLayout(self.mainPageLayout)
if __name__ == '__main__':
homeApplication = QApplication(sys.argv)
homeApplication.setStyle('Fusion')
homeMainWindow = SystemMainPage()
homeMainWindow.show()
sys.exit(homeApplication.exec_())
# ====== Creating Customized Tree Widget (Start)
已编辑:代码可以运行,但我没有包含示例图片或图标。任何图片都可以。请用正确的图片替换“QIcon(Icon1.png)”。
每次单击 TreeWidgetItem 时,颜色的图标是什么都没有关系,它总是会给它一个蓝色调。
想要的结果:我想控制图标的颜色,就像我们在可以配置 RGB 的样式表上所做的那样。或者如果图标的颜色不会改变就可以了。
解决方案
推荐阅读
- python - numpy 减去两个数组:输出
- c# - 使用 Ajax 重定向到授权控制器
- c# - 带有 Razor 页面的 ASP.NET Core MVC(不能从不同的模型返回对象)
- php - 如何从 PHP 中的关联数组的键中提取所有最后的值?
- powershell - Powershell:Start-Job 中的 Copy-Item 似乎可以工作,但之后文件丢失
- vba - 工作文档中的 Word VBA ActiveDocument.PageWidth = 9999999
- c# - 如何在 C# 中实现 Twilio Conference HangUpOnStar
- excel - 基于列表的VBA搜索数据
- c# - 在美国文化中显示特定时间和日期的温度的格式
- c# - VS2017 社区 - windows 通用项目不支持页面