分享我用Qt開發的應用程序【二】在Qt應用程序中使用字體圖標fontawesome


為了使用簡單,需要先寫一個單件類,頭文件的代碼如下:
其中靜態方法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、這個小程序會始終在你的桌面上,你點顯示桌面,它還是在你的桌面上
 
下載地址:http://pan.baidu.com/s/1hGh8U
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM