问题描述
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,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,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)
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,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,45)}')
home_SubMenuTreeWidget.setItemWidget(billingContent,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 的样式表上所做的那样。或者不改变图标颜色就可以了。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)