所以我想改变 QGraphicsScene 中 QGraphicsSvgItem 的颜色。我有这个小代码片段:
from PyQt5 import (QtWidgets as qtw, QtCore as qtc, QtGui as qtg, QtSvg as qsvg)
class HitIcon(qsvg.QGraphicsSvgItem):
def __init__(self, field):
super(HitIcon, self).__init__('my.svg'))
self.setScale(.3)
self._brush = qtg.QBrush(qtc.Qt.red)
self.update()
def paint(self, painter=None, Style=None, widget=None):
painter.fillRect(self.boundingRect(), self._brush)
这会用指定的颜色填充 svgitem 的完整 boundingRect。我搜索了 QPainter 的文档以找到一种仅填充 svg 路径但找不到任何东西的方法。
我还尝试了以下方法:
painter.fillPath(self.clipPath(), self._brush)
painter.fillRect(self.clipPath(), self._brush)