字体图标¶
作为一个半路出家的小码农,今天突发发现字体图标这个好东西。
使用非常简单,像字体一样调用。而且还可以任意放大不失真。
1 字体图标库下载¶
这里有网上找到的几个免费字体图标库
fontawesome-webfont.ttf
下载地址: http://fontawesome.dashgame.com/
pe-icon-set-weather.ttf
下载地址:https://www.pixeden.com/icon-fonts/the-icons-font-set-weather
2 自定义字体图标库¶
阿里图标库网址:http://www.iconfont.cn
把自己想要的字体图标添加至购物车,下载之后*.ttf文件就是我们自己的图标库了‘
3 QT 使用字体图标库¶
新建 qt widget application 应用,一路默认即可。
添加 qrc 文件
添加前缀
添加 ttf 文件
添加以下代码到mainwindow
QFont iconFont;
//判断图形字体是否存在,不存在则加入
QFontDatabase fontDb;
if (!fontDb.families().contains("FontAwesome")) {
int fontId = fontDb.addApplicationFont(":/image/fontawesome-webfont.ttf");
QStringList fontName = fontDb.applicationFontFamilies(fontId);
if (fontName.count() == 0) {
qDebug() << "load fontawesome-webfont.ttf error";
}
}
if (fontDb.families().contains("FontAwesome")) {
iconFont = QFont("FontAwesome");
iconFont.setHintingPreference(QFont::PreferNoHinting);
}
iconFont.setPixelSize(100);
QStringList list;
for (int i = 0; i < 10 ; i++) {
QChar str = QChar(0xf000 + i);
QString tip = QString("0xf%1").arg(i, 3, 16, QChar('0'));
QLabel *lab = new QLabel;
lab->setAlignment(Qt::AlignCenter);
lab->setFont(iconFont);
lab->setText(str);
lab->setToolTip(tip);
lab->setMinimumSize(30, 30);
QPalette blue_pe,red_pe;
blue_pe.setColor(QPalette::WindowText,Qt::blue);
red_pe.setColor(QPalette::WindowText,Qt::red);
if (i%4==0)
lab->setPalette(blue_pe);
else if (i%4==1)
lab->setPalette(red_pe);
else if (i%4==2)
lab->setStyleSheet("color:yellow;");
ui->horizontalLayout->addWidget(lab);
}