qt客户端程序使用svg图片资源的几种方法
直接使用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图片资源的几种方法的更多相关文章
- QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)
QT中获取选中的radioButton的两种方法 QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...
- VS编程,WPF中,获取鼠标相对于当前程序窗口的坐标的一种方法
原文:VS编程,WPF中,获取鼠标相对于当前程序窗口的坐标的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/ ...
- QT中获取选中的radioButton的两种方法
QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioButton* pbtn = qobject_cast&l ...
- C# Windows程序窗口置前台的几种方法
这个是从别的地方看来的,放我这里 第一种:SetForegroundWindow,这个方法时灵时不灵.有人说,在自己的程序里把自己的窗口之前一般就不灵,而置前其它程序的窗口就灵.我觉得这是有原因的:当 ...
- 体温数据上传程序开发+获取时间的三种方法+DB Browser下载及安装
今天开始了体温上传程序的开发 今日所学: 获取时间 (21条消息) (转)安卓获取时间的三种方法_sharpeha的博客-CSDN博客_安卓获取时间 DB Browser安装教程 (20条消息) sq ...
- 将Java程序作成exe文件的几种方法【转载】
看到网上有同志的介绍将Java程序作成exe文件的方法,写的不错,但是也许是这篇文章完成的时间比较早,许多内容已经不合适了.我在这里补充几条: 一.exe4j 说明:exe4j可以将Jar文件制作成e ...
- C#程序读取MAC地址的五种方法(转)
public class GetMac { ///<summary> /// 根据截取ipconfig /all命令的输出流获取网卡Mac ///</summary> ///& ...
- 关于我在17号“一个查询任意年份中任意月份的天数”程序编写中的代码&第二种方法!
PS:下面的代码是我对于17号的练习题的一些新的看法(其实就是从另一个角度思考问题) package day20180917;import java.util.Scanner;//导包public c ...
- 微信小程序页面跳转的四种方法
wx.navigateTo({}) ,保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回; 示例: 1 wx.navigateTo({ 2 url:'../test/ ...
随机推荐
- 计算机组成原理(下)第8章 CPU的结构和功能测试
1.单选(1分) 以下关于指令周期的描述正确的是___ A.CPU保存一条指令的时间 B.CPU执行一条指令的时间 C.CPU取出并执行一条指令所需的全部时间 D.CPU从主存取出一条指令的时间 正确 ...
- 负载均衡基本原理与lvs
前言: 之前在山西的项目上使用的是lvs下的NAT模式,但另外两个模式并没有涉及,今天系统的整理下关于负载均衡的相关理论与lvs各模式的相关优点与不足,知其然与所以然,而后能针对性的应用: 基本介绍 ...
- 七牛云 融合CDN测试域名 -> 融合CDN加速域名
七牛云 融合CDN测试域名 -> 融合CDN加速域名 本篇主要讲解 如何将七牛云融合CDN测试域名 切换到自定义的加速域名上去,为什么会写这篇是因为我收到了一封 [七牛云]测试域名回收通知的邮件 ...
- Unable to open debugger port (127.0.0.1:57046): java.net.SocketException "so
原因分析: 出现这个报错的原因是因为端口被占用导致的. 解决方法: 解决方法主要两种:修改端口配置(推荐).关闭占用端口的进程(不推荐). 方式一:修改端口配置(推荐) 被占用的端口可能是本地端口,也 ...
- 3.JavaSE之注释
- 在eclipse里用jdbc连接MySQL
进入MySQL控制台, 输入密码, 新建数据库test1并给用户授权,用户名“jaovo”, 创建表,id主键自增, 下载jdbc驱动包(jar文件) 把它放进tomcat的安装目录lib文件夹下(我 ...
- 《大道至简》第一章Java伪代码读后感
/*写程序,实际是一种方法论.从另外一个角度帮我们看待世界,看清事物的本质. 早在两千年前的寓言中,愚公和智叟的问答中就已体现整个工程的实现程序.*/ public class 移山{ string ...
- Sublime Text 3 安装包
摘要 Error while loading PyV8 binary:exit code 3 .sublime-package报错 安装SublimeREPL,可以运行python代码 安装local ...
- JAVA WebSocket 使用时需要注意的地方
最近在做一个项目,需要用WebSocket与另外一个平台建立通讯,来获取项目业务需要的实时数据,因此项目一启动,后台就要与另外一个平台建立WebSocket连接并且要保证他们的之间有且只有一条持续畅通 ...
- 小白学Java:内部类
目录 小白学Java:内部类 内部类的分类 成员内部类 局部内部类 静态内部类 匿名内部类 内部类的继承 内部类有啥用 小白学Java:内部类 内部类是封装的一种形式,是定义在类或接口中的类. 内部类 ...