分享我用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

 

时间: 2024-10-27 15:17:44

分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome的相关文章

Java 实践:JavaFX 桌面应用开发中使用字体图标

在最近的一个 JavaFX 桌面应用开发中,体验了一下将 Font Awesmoe 的字体图标库作为自定义字体运用于桌面应用中.我将其中一些关键代码提取出来编写成了FontawesomeWithJavaFX 示例程序供大家交流.下载 Font Awesome 这是一个 web app 常用的可以进行自定义缩放矢量图标, 其大小,颜色,阴影等,都可通过 CSS 进行修饰. Overview 预备知识 了解一下 JavaFX JavaFX 简单的说,就是用于 Java 开发桌面应用的.对于曾经使用过

用Qt开发第一个Hello World程序

配置好Qt的环境变量之后,我们才可以进行下面的通过终端来使用Qt开发这个第一个程序 因为Qt的文件路径不能有中文否则会报错,所以一般都把工程文件都建立在根目录 我们创建的Qt程序包含两个部分:1.GUI程序 2.显示字符串,所以输入代码: 编译这个程序 如果提示找不到qmake就说明环境变量配置有问题,正常如上不会有任何提示 输入ls之后,我们可以看到目录下生成了一个pro文件,这是一个与平台无关的项目文件 然后接着输入qmake就可以完成编译,然后用ls看看有什么文件,多了一个Makefile

windows下VisualStudio和QtCreator搭建Qt开发环境

一.简介         集成开发平台IDE都有各自的长处,编写Qt程序可根据自己的喜好来选择相应的IDE.下述文章都是装载博友的文章,其中有很多细节还得自己调整. 二.详解 1.VisualStudio搭建Qt开发环境 Visual Studio中文官方网站 Visual Studio所有下载 (1)Visual Studio Community 2013 1.选择Community 2013,下载安装 2.安装完Visual Studio默认是英文,如果对英文不感冒的童鞋,可以下载中文语言包

QT开发环境的建立以及QTE4.6.3、tslib1.4的移植过程

1.首先是建立Linux开发环境1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-227600,安装完成后进行汉化,由于要覆盖文件,所以要先在任务管理器中结束所有有关VMware的进程,然后将汉化文件覆盖到VMware的安装目录,至此VMware虚拟机软件安装完成.1.2.虚拟机软件安装成功后,就开始安装Linux操作系统,这里我使用的Ubuntu10.04长期支持版,可以到Ubunt

【C/C++学院】(13)QT开发技术/QT 基础/QT 信号和槽

Qt是一个跨平台的c++图形用户界面应用程序框架. Qt安装说明: windows下环境变量path需要加入以下路径,以便QT写的程序可以离开QT开发环境独立运行 C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin\;C:\Qt\Qt5.2.0\Tools\mingw48_32\bin; linux下需要设置.bash_profile文件 PATH中加入/opt/Qt5.2.0/5.2.0/gcc/bin 用root用户登录系统,进入/usr/lib目录后执行 ln libGL

[置顶]【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库基本全了,现在开放该数据库,目的是为了让可能需要该类型做相关研究准备的,至于实时天气的采集本项目也做了,暂时不公布,如果有需求的,单独好我联系,原因很简单,人家小站也不容易,大家一起拖,容易搞死,主要大家都不能用. .NET开源项目:[目录]本博客其他.NET开源项目文章目录  本文原文地址

android-如何用QT开发ftp服务器?

问题描述 如何用QT开发ftp服务器? 最近要做一个项目,要qt on android架设ftp服务器.网上查了很久,都是写ftp客户端的程序 有谁做过? 解决方案 ftp服务器是标准的,使用第三方开发的即可,没有必要自己开发 如 http://www.2cto.com/kf/201501/374048.html 就很好 解决方案二: ftp服务器是标准的,使用第三方开发的即可,没有必要自己开发 如 http://www.2cto.com/kf/201501/374048.html 就很好

分享Visual Studio原生开发的10个调试技巧(2)_实用技巧

之前关于Visual Studio调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原生开发的调试技巧(接着以前的文章来编号).这些技巧可以应用在VS2005或者更新版本中(当然有一些可以适用于旧版本).如果你继续,你可以知道每个技巧的详细信息. 技巧11:数据断点 当数据所在内存位置变化时,调试器将会中断.然而,这是唯一可能在一个时间创建4这样的硬件的数据断点.数据断点只能在编译的过程中添加,可以通过菜单(编译>新断点>新数据断点)或者通过断点窗口来

参数保存-qt开发andriod的app,保存重要参数。

问题描述 qt开发andriod的app,保存重要参数. qt开发andriod的app.现在要实现重要参数保存,qsettings好像不行.权限达不到.参数文件如何搞,那个大神搞定了.求分享. 解决方案 可以写入xml或者sqlite数据库 解决方案二: 楼上说的可以,也可以用editor,存储到本地文件中.