為了使用簡單,需要先寫一個單件類,頭文件的代碼如下:
其中靜態方法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); |
-----------------------
我又開發了一個桌面日歷的小程序分享給大家
1、黑色背景是我的桌面顏色,大家可以忽略
2、雖然右鍵菜單里寫了“開機自啟動”,但我並沒有開發這個功能,請見諒
3、
我會在下一篇文章里公布這個小程序的源碼,敬請期待
4、這個小程序會始終在你的桌面上,你點顯示桌面,它還是在你的桌面上

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