1
Я пытаюсь изменить цвет значка кнопки во время выполнения. Если у меня есть svg как xml, это легко сделать. Можно ли загрузить текстовое представление xml из файла ресурсов?Загрузить svg из ресурса Qt в строку и изменить цвет
Решено: Да, это возможно:
#!/usr/bin/env python
import sip
try:
sip.setapi('QString', 2)
sip.setapi('QVariant', 2)
except ValueError, e:
log.error(e)
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtSvg import *
import sys
import resources_rc
if __name__ == '__main__':
app = QApplication(sys.argv)
f = QFile(":/icons/icons/svg/draw-freehand.svg")
if f.open(QFile.ReadOnly | QFile.Text):
textStream = QTextStream(f)
svgData = textStream.readAll()
f.close()
svg = QSvgRenderer(QByteArray(svgData))
qim = QImage(32, 32, QImage.Format_ARGB32)
qim.fill(0)
painter = QPainter()
painter.begin(qim)
svg.render(painter)
painter.end()
qim.save('test2.png')
Большое спасибо. Прекрасно работает. Я обновил код выше. – user2638109