直接使用svg格式文件资源的情况

1. 直接在UI控件属性面板中选择部分支持icon图标的控件的icon来源,这样图标可以显示

2.给toolbutton添加样式

 qproperty-icon: url(:/new/prefix1/resource/ball.svg); qproperty-iconSize: 300px 56px;

3.自定义一个qwidget 重写paintevent方法

void svgrenderwidget::paintEvent(QPaintEvent *event)
{
QPainter qPainter(this);
QSvgRenderer m_svgRender;
m_svgRender.load(QString(":/new/prefix1/resource/ball.svg"));
m_svgRender.render(&qPainter ,QRectF(,,this->size().width() ,this->size().height()));
}

使用svg转的矢量字体库的情况

使用https://www.iconfont.cn网站先建立图标项目,图标整理完以后,下载项目,找到css中对图标的编号

在QT资源中导入该ttf字体库资源。

1. 给pushbutton设置font和text。

    int fontId = QFontDatabase::addApplicationFont(":/new/prefix1/resource/font/iconfont.ttf");
QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
QFont font;
font.setFamily(fontFamilies.at());
font.setPointSize();
ui->pushButton->setFont(font);
QString str = QString("%1%2").arg(QChar(0xe6f3)).arg("代码");
ui->pushButton->setText(str);

如有必要的话可以修改图标颜色

    ui->pushButton_3->setStyleSheet("color: rgb(200 , 167 , 0);");

2. 在qwidget上显示图标序列,即绘制矢量文本显示出图片

void MainWindow::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event); QPainter painter(this);
painter.setPen(QColor("#000000"));
painter.setFont(this->font); painter.drawText(,, FontAwesomeIcons::Instance().getIconChar(FontAwesomeIcons::IconIdentity::icon_component));
painter.drawText(,, "component"); painter.drawText(,, FontAwesomeIcons::Instance().getIconChar(FontAwesomeIcons::IconIdentity::icon_code));
painter.drawText(,, "code"); }

注意:

qwidget的qss中使用svg格式的图片设置样式,并不能显示,我也没搞懂。在qwidget的样式表总输入background-image: url(:/new/prefix1/resource/ball.svg);

最终的测试效果

可运行demo程序的工程如下 (qt5.10 +windows)

链接:https://pan.baidu.com/s/1u4zVsYHg9tF_E7LbtWmUBA
提取码:jce9

qt客户端程序使用svg图片资源的几种方法的更多相关文章

  1. QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)

    QT中获取选中的radioButton的两种方法   QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...

  2. VS编程,WPF中,获取鼠标相对于当前程序窗口的坐标的一种方法

    原文:VS编程,WPF中,获取鼠标相对于当前程序窗口的坐标的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/ ...

  3. QT中获取选中的radioButton的两种方法

    QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioButton* pbtn = qobject_cast&l ...

  4. C# Windows程序窗口置前台的几种方法

    这个是从别的地方看来的,放我这里 第一种:SetForegroundWindow,这个方法时灵时不灵.有人说,在自己的程序里把自己的窗口之前一般就不灵,而置前其它程序的窗口就灵.我觉得这是有原因的:当 ...

  5. 体温数据上传程序开发+获取时间的三种方法+DB Browser下载及安装

    今天开始了体温上传程序的开发 今日所学: 获取时间 (21条消息) (转)安卓获取时间的三种方法_sharpeha的博客-CSDN博客_安卓获取时间 DB Browser安装教程 (20条消息) sq ...

  6. 将Java程序作成exe文件的几种方法【转载】

    看到网上有同志的介绍将Java程序作成exe文件的方法,写的不错,但是也许是这篇文章完成的时间比较早,许多内容已经不合适了.我在这里补充几条: 一.exe4j 说明:exe4j可以将Jar文件制作成e ...

  7. C#程序读取MAC地址的五种方法(转)

    public class GetMac { ///<summary> /// 根据截取ipconfig /all命令的输出流获取网卡Mac ///</summary> ///& ...

  8. 关于我在17号“一个查询任意年份中任意月份的天数”程序编写中的代码&第二种方法!

    PS:下面的代码是我对于17号的练习题的一些新的看法(其实就是从另一个角度思考问题) package day20180917;import java.util.Scanner;//导包public c ...

  9. 微信小程序页面跳转的四种方法

    wx.navigateTo({}) ,保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回; 示例: 1 wx.navigateTo({ 2 url:'../test/ ...

随机推荐

  1. 【C++】CCFCSP201803-2碰撞的小球

    // // main.cpp // CCFCSP20180318_2_碰撞的小球 // // Created by T.P on 2018/3/24. // Copyright © 2018年 T.P ...

  2. GPL协议中国第一案尘埃落定,相关开源软件应如何风控?

    导读:2019年11月6日,数字天堂(北京)网络技术有限公司(以下简称 “数字天堂公司”)诉柚子(北京)科技有限公司.柚子(北京)移动技术有限公司(以下简称 “柚子公司”)侵犯计算机软件著作权纠纷一案 ...

  3. Stripe支付对接

    一.由于文档丢失原因,我就直接上代码了. 这个Stripe支付可以支持多个币种,我下面就采用"HDK"来参照支付先上一个支付效果图  提示:先上代码,在说明博主自己理解的流程. 一 ...

  4. 应急响应&&取证

    查看日志    eventvwr.exe   中了勒索病毒 1.查看download目录有没有病毒样本,C:\Users\86132\Downloads 2.查看系统开放端口 3.导出systemin ...

  5. C++ | C++ 概览 基础知识 | 01

    一.基本概念 1.1 类型.变量和算术运算 1.2 常量 1.3 检验和循环 1.4 指针,数组和循环 二.用户自定义类型 2.1 结构 2.2 类 2.3 枚举 三.模块化 3.1 分离编译 3.2 ...

  6. 【转】ArcGIS ADF 实时轨迹问题初步解决方案

    Web ADF 实时轨迹是指在Web客户端指定一资源项,并对资源项进行实进跟踪并绘制出轨迹图.实时绘制可采用Ajax实现服务端与客户端无刷新动态绘制,在.net2.0 框架下可轻易实现:通过客户端时钟 ...

  7. 详解定时任务中的 cron 表达式

    1.前言 我们经常使用 cron 表达式来定义定时任务的执行策略,今天我们就总结一下 cron 表达式的一些相关知识. 2. cron 表达式的定义 cron 表达式是一个字符串,该字符串由 6 个空 ...

  8. DateTime.Now

    // 2008年4月24日 System.DateTime.Now.ToString( " D " );// 2008-4-24 System.DateTime.Now.ToStr ...

  9. 《C# 爬虫 破境之道》:概述

    第一节:写作本书的目的 关于笔者 张晓亭(Mike Cheers),1982年出生,内蒙古辽阔的大草原是我的故乡. 没有高学历,没有侃侃而谈的高谈阔论,拥有的就是那一份对技术的执著,对自我价值的追求. ...

  10. Eclipse常用快捷键【转】

    Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键.1. [ALT+/]此快捷键为用户编辑的好帮手,能为用户提供内容的 ...