Qt加载SVG图片以及改变SVG图片颜色

1 Qt加载SVG图片

1QTreeWidgetItem *item = new QTreeWidgetItem; 2//svg_path为SVG图片路径 3QSvgRenderer *svg_render = new QSvgRenderer(svg_path); 4QPixmap *pixmap = new QPixmap(32, 32); 5pixmap->fill(Qt::transparent); 6QPainter painter(pixmap); 7svg_render->render(&painter); 8QIcon ico(*pixmap); 9item->setIcon(1, ico);

2 Qt改变SVG图片颜色

1QTreeWidgetItem *item = new QTreeWidgetItem; 2QString path = svg_path; 3QFile file(path); 4file.open(QIODevice::ReadOnly); 5QByteArray data = file.readAll(); 6QDomDocument doc; 7doc.setContent(data); 8file.close(); 9 10QString color = "blue"; 11 12SetSVGBackColor(doc.documentElement(), "path", "fill", color); 13 14QByteArray svg_content = doc.toByteArray(); 15QSvgRenderer *svg_render = new QSvgRenderer(svg_content); 16QPixmap *pixmap = new QPixmap(32, 32); 17pixmap->fill(Qt::transparent); 18QPainter painter(pixmap); 19svg_render->render(&painter); 20QIcon ico(*pixmap); 21item->setIcon(0, ico); 22 23void SetSVGBackColor(QDomElement &elem, QString strtagname, QString strattr, QString strattrval); 24 25void SetSVGBackColor(QDomElement &elem, QString strtagname, QString strattr, QString strattrval) 26{ 27 if (elem.tagName().compare(strtagname) == 0) 28 { 29 QString before_color = elem.attribute(strattr); 30 elem.setAttribute(strattr, strattrval); 31 QString color = elem.attribute(strattr); 32 } 33 for (int i = 0; i < elem.childNodes().count(); i++) 34 { 35 if (!elem.childNodes().at(i).isElement()) 36 { 37 continue; 38 } 39 SetSVGBackColor(elem.childNodes().at(i).toElement(), strtagname, strattr, strattrval); 40 } 41}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

java反射, 不看你可别后悔

<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,

AndroidStudio封装SDK的那些事

<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael

SVG跟随父级DIV自适应

后台返回过来的是这样的SVG标签<svgwidth"100%"height"100%"version"1.1"xmlns"http://www.w3.org/2000/svg"<gtransform"translate(00)"