博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt加载SVG图片以及改变SVG图片颜色
阅读量:4940 次
发布时间:2019-06-11

本文共 1559 字,大约阅读时间需要 5 分钟。

1 Qt加载SVG图片

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

2 Qt改变SVG图片颜色

QTreeWidgetItem *item = new QTreeWidgetItem;QString path = svg_path;QFile file(path);file.open(QIODevice::ReadOnly);QByteArray data = file.readAll();QDomDocument doc;doc.setContent(data);file.close();QString color = "blue";SetSVGBackColor(doc.documentElement(), "path", "fill", color);QByteArray svg_content = doc.toByteArray();QSvgRenderer *svg_render = new QSvgRenderer(svg_content);QPixmap *pixmap = new QPixmap(32, 32);pixmap->fill(Qt::transparent);QPainter painter(pixmap);svg_render->render(&painter);QIcon ico(*pixmap);item->setIcon(0, ico);
void SetSVGBackColor(QDomElement &elem, QString strtagname, QString strattr, QString strattrval);void SetSVGBackColor(QDomElement &elem, QString strtagname, QString strattr, QString strattrval){    if (elem.tagName().compare(strtagname) == 0)    {        QString before_color = elem.attribute(strattr);        elem.setAttribute(strattr, strattrval);        QString color = elem.attribute(strattr);    }    for (int i = 0; i < elem.childNodes().count(); i++)    {        if (!elem.childNodes().at(i).isElement())        {            continue;        }        SetSVGBackColor(elem.childNodes().at(i).toElement(), strtagname, strattr, strattrval);    }}

 

转载于:https://www.cnblogs.com/LuckCoder/p/11171666.html

你可能感兴趣的文章
Python列表 元组 字典 集合
查看>>
foreach遍历数组、数组的转置与方阵的迹
查看>>
Still unable to dial persistent://blog.csdn.net:80 after 3 attempts
查看>>
HTML超文本标记语言(九)——表单输入类型
查看>>
基于busybox制作mini2440根文件系统及使用nfs挂载
查看>>
信道容量及信道编码原理学习
查看>>
浅谈独立特征(independent features)、潜在特征(underlying features)提取、以及它们在网络安全中的应用...
查看>>
从随机过程的熵率和马尔科夫稳态过程引出的一些思考 - 人生逃不过一场马尔科夫稳态...
查看>>
《A First Course in Abstract Algebra with Applications》-chaper1-数论-关于素数
查看>>
ORA-3136
查看>>
算法笔记_145:拓扑排序的应用(Java)
查看>>
JS获取农历日期
查看>>
PHP中的HTTP协议
查看>>
CSS给文字描边实现发光文字
查看>>
Java WebService入门实例
查看>>
css样式之补充
查看>>
结构与联合
查看>>
关于JS历史
查看>>
软件架构师工作流程
查看>>
将txt文本转换为excel格式
查看>>