天天看點

分享我用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官網上得來的

詳見:http://fontawesome.io/cheatsheet/

-----------------------

我又開發了一個桌面月曆的小程式分享給大家

1、黑色背景是我的桌面顔色,大家可以忽略

2、雖然右鍵菜單裡寫了“開機自啟動”,但我并沒有開發這個功能,請見諒

3、我會在下一篇文章裡公布這個小程式的源碼,敬請期待

4、這個小程式會始終在你的桌面上,你點顯示桌面,它還是在你的桌面上

下載下傳位址:http://pan.baidu.com/s/1hGh8U