首页 > 代码库 > 分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome
分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome
为了使用简单,需要先写一个单件类,头文件的代码如下:
其中静态方法Instance保证IconHelper的实例全局唯一
(注意构造函数已经私有化了)
下面来看一下CPP文件的代码
#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 |
应用程序所在目录下创建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); } |
只要这样调用即可:
IconHelper::Instance()->SetIcon(ui->LeftBtn,QChar(0xf177),12); IconHelper::Instance()->SetIcon(ui->RightBtn,QChar(0xf178),12); |
详见:http://fontawesome.io/cheatsheet/
-----------------------
我又开发了一个桌面日历的小程序分享给大家
1、黑色背景是我的桌面颜色,大家可以忽略
2、虽然右键菜单里写了“开机自启动”,但我并没有开发这个功能,请见谅
3、我会在下一篇文章里公布这个小程序的源码,敬请期待
4、这个小程序会始终在你的桌面上,你点显示桌面,它还是在你的桌面上
下载地址:http://pan.baidu.com/s/1hGh8U
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。