2016-02-11 2 views
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') 

ответ

Смежные вопросы