【PyQt】(自定义类)QIcon派生,更易用的纯色Icon

嫌Qt自带的icon太丑,自己写了一个,主要用于纯色图标的自由改色。
当然,图标素材得网上找。



Qt原生图标与现代图标对比:

没有对比就没有伤害

Qt图标
Qt图标

网络素材图标
素材图标
请添加图片描述
请添加图片描述



自定义类XJQ_Icon:

from PyQt5.QtGui import QIcon,QPixmap,QImage

from cv2 import cv2
import numpy as np
from functools import reduce

__all__=['XJQ_Icon']
class XJQ_Icon(QIcon):
	def __init__(self,data,fg=(255,0,0,255),bg=(0,0,0,0)):#data可以为图片路径(str)或是图片数据(np.ndarray)
		# QIcon:https://doc.qt.io/qt-6/qicon.html
		super().__init__()
		if(isinstance(data,np.ndarray)):
			im=data
		elif(isinstance(data,str))
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5 中,QIcon 是一个图标,它可以用于设置窗口标题栏、工具栏、菜单栏等控件中的图标。如果要改变 QIcon 的颜色,可以使用 QPainter 对象的 setCompositionMode() 方法和 setBrush() 方法来实现。 具体步骤如下: 1. 创建一个 QIcon 对象,并设置它的图标。 2. 创建一个 QPainter 对象,并将 QIcon 对象传递给它。 3. 使用 setCompositionMode() 方法将 QPainter 对象的组合模式设置为 CompositionMode_SourceIn,这样就可以使用 QPainter 对象的 setBrush() 方法设置要绘制的颜色。 4. 调用 QPainter 对象的 drawPixmap() 方法将 QIcon 对象绘制到指定位置。 下面是一个示例代码: ```python from PyQt5.QtGui import QIcon, QPainter, QColor, QPixmap from PyQt5.QtCore import QSize from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): label = QLabel(self) # 创建一个 QIcon 对象,并设置它的图标 icon = QIcon('icon.png') # 创建一个 QPainter 对象,并将 QIcon 对象传递给它 painter = QPainter() painter.begin(icon.pixmap(QSize(64, 64))) # 使用 setCompositionMode() 方法将 QPainter 对象的组合模式设置为 CompositionMode_SourceIn # 使用 setBrush() 方法设置要绘制的颜色 painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.setBrush(QColor('blue')) # 调用 QPainter 对象的 drawPixmap() 方法将 QIcon 对象绘制到指定位置 painter.drawPixmap(icon.availableSizes()[0], icon.pixmap(QSize(64, 64))) painter.end() # 将 QIcon 对象设置为标签的图标 label.setPixmap(icon.pixmap(QSize(64, 64))) vbox = QVBoxLayout() vbox.addWidget(label) self.setLayout(vbox) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Icon') self.show() if __name__ == '__main__': app = QApplication([]) ex = Example() app.exec_() ``` 在上面的代码中,我们首先创建了一个 QIcon 对象,并将其设置为标签的图标。然后,我们创建一个 QPainter 对象,并将 QIcon 对象传递给它。接着,我们使用 setCompositionMode() 方法将 QPainter 对象的组合模式设置为 CompositionMode_SourceIn,这样就可以使用 QPainter 对象的 setBrush() 方法设置要绘制的颜色。最后,我们调用 QPainter 对象的 drawPixmap() 方法将 QIcon 对象绘制到指定位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值