首页 > 解决方案 > 如何删除 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-3.xpyqt5qtreewidgetqtreewidgetitemqicon

解决方案


推荐阅读