分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome

摘要:
_instance){QMutexLockerlocker(&mutex);if(!
为了使用简单,需要先写一个单件类,头文件的代码如下:
其中静态方法Instance保证IconHelper的实例全局唯一
(注意构造函数已经私有化了)
#ifndefICONHELPER_H
#defineICONHELPER_H
#include<QObject>
#include<QMutex>
#include<QMutexLocker>
#include<QtGui>
#include<QtWidgets>
#include<qfont.h>
classIconHelper:publicQObject
{
Q_OBJECT
private:
explicitIconHelper(QObject*parent=0);
QFonticonFont;
staticIconHelper*_instance;
public:
staticIconHelper*Instance()
{
staticQMutexmutex;
if(!_instance)
{
QMutexLockerlocker(&mutex);
if(!_instance)
{
_instance=newIconHelper;
}
}
return_instance;
}
voidSetIcon(QLabel*ctl,QCharc,intsize=10);
voidSetIcon(QPushButton*ctl,QCharc,intsize=10);
signals:
publicslots:
};
#endif//ICONHELPER_H
下面来看一下CPP文件的代码
应用程序所在目录下创建res目录,并放置字体文件/res/fontawesome-webfont.ttf
然后加载到全局字体中
#include"IconHelper.h"
IconHelper*IconHelper::_instance=0;
IconHelper::IconHelper(QObject*):
QObject(qApp)
{
intfontId=QFontDatabase::addApplicationFont(qApp->applicationDirPath()+"/res/fontawesome-webfont.ttf");
QStringfontName=QFontDatabase::applicationFontFamilies(fontId).at(0);
iconFont=QFont(fontName);
}
voidIconHelper::SetIcon(QLabel*ctl,QCharc,intsize)
{
iconFont.setPointSize(size);
ctl->setFont(iconFont);
ctl->setText(c);
}
voidIconHelper::SetIcon(QPushButton*ctl,QCharc,intsize)
{
iconFont.setPointSize(size);
ctl->setFont(iconFont);
ctl->setText(c);
}
如果你想让一个QLabel或者QPushButton控件显示一个图标的话
只要这样调用即可:
IconHelper::Instance()->SetIcon(ui->LeftBtn,QChar(0xf177),12);
IconHelper::Instance()->SetIcon(ui->RightBtn,QChar(0xf178),12);
注意,这里的16进制的数据是从fontawesome官网上得来的
-----------------------
我又开发了一个桌面日历的小程序分享给大家
1、黑色背景是我的桌面颜色,大家可以忽略
2、虽然右键菜单里写了“开机自启动”,但我并没有开发这个功能,请见谅
3、我会在下一篇文章里公布这个小程序的源码,敬请期待
4、这个小程序会始终在你的桌面上,你点显示桌面,它还是在你的桌面上
分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome第1张
下载地址:http://pan.baidu.com/s/1hGh8U

免责声明:文章转载自《分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇「postgres」登录 psql: FATAL: Peer authentication failed for user "postgres"P1064 金明的预算方案 (普通dp)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

从零开始制作Galgame——我的Ren'py学习笔记(一)

然后点击“启动工程”点击“开始游戏”效果应该是这样的好了,现在你就制作出了属于自己的第一个游戏角色在一般的Galgame中,不是所有话都是“旁白”说的,一个完整的游戏里面应该有主角那么,怎么在ren'py中定义角色呢我们把刚才的代码更改一下definel=Characterlabelstart:l"HelloWorld!...

WPF绑定功能常用属性介绍

这是实质上是System.Windows.Data.BindingMode.OneWay绑定的一种简化形式,它在源值不更改的情况下提供更好的性能。确定依赖属性绑定在默认情况下是单向还是双向的编程方法是:使用System.Windows.DependencyProperty.GetMetadata获取属性的属性元数据,然后检查System.Windows.Fr...

戴尔服务器R740-iDRAC管理卡远程安装系统

Dell服务器R740 iDRAC管理卡安装系统1.方案部署:1.服务器配置名称配置备注CPU 2核心内存128GSwap=128G硬盘2T*8RAID5=12T II。设置iDRAC管理卡地址和连接:iDRAC功能默认关闭,需要在BIOS中启用。由于这是一项测试,默认情况下使用浏览器(Google浏览器)访问iDRAC管理地址,Calvin可以在此处设置新...

用VBA去除Excel工作表保护密码

今天帮同事解决个EXCEL问题,现记在这,以作备忘现象:想要修改保护单元格的内容,在使用“工具”菜单“保护”子菜单的“撤消工作表保护”命令,这时要求输入密码。"ExitSubEndIfFori=65To66:Forj=65To66:Fork=65To66Forl=65To66:Form=65To66:Fori1=65To66Fori2=65To66:Fori...

log4j2

4.日志级别:我们现在将调用logger方法。然而,这个logger对象中有很多方法,所以我们应该首先了解log4j的日志级别,它指定了几个默认级别:trace˂debug˂info˂warn˂error˂false等。电话很简单。log4j的核心在配置文件中。如果我已经定义了日志,我将日志级别更改为TRACE,输出将如下:19:11:36.941TRACE...

data文件夹权限修改

我们可以用..sdkplatform-tools里面的adb工具进行修改:用adbshell打开和linux类似的shell界面,可以看到提示符是$,还是普通用户,我们需要对权限进行提升:这里注意!chmod更改权限,和linux一毛一样。data文件的权限立马就达到最高,单击可也打开了。然而data/data文件夹任然是不可工作的,继续修改继续修改包的权限...