之前在做界面设计的时候一直都在为界面图标的显示花费太多的时间。自从做过网页前端的开发之后突然在想,在 QT 的界面显示上也用字体图标来显示不就很快解决图标问题了嘛。于是去 FontAwesome 官网下载了最新的字库。然后查QT导入第三方字库的方法,如下:
- 将字库加载到项目的资源文件
- 在主程序启动时加载字库
int main(...)
{
//...
#if 1
QFontDatabase::addApplicationFont(":/fonts/fontawesome-4.7.ttf");
#else
//...For getting font name
int loadedFontID = QFontDatabase::addApplicationFont(":/fonts/fontawesome-4.7.ttf");
QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(loadedFontID);
if(!loadedFontFamilies.empty())
{
QString font = loadedFontFamilies.at(0);
qDebug() <<"font name:"<<font;
}
#endif
//...
}
QML 中使用:
ToolButton {
id: btnSettings
font.family: "FontAwesome"
text: "\uf013"
}
相关图标的 Cheat Sheet: http://fontawesome.io/cheatsheet/
效果: