zoukankan      html  css  js  c++  java
  • 分享我用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官网上得来的
     
    -----------------------
    我又开发了一个桌面日历的小程序分享给大家
    1、黑色背景是我的桌面颜色,大家可以忽略
    2、虽然右键菜单里写了“开机自启动”,但我并没有开发这个功能,请见谅
    3、我会在下一篇文章里公布这个小程序的源码,敬请期待
    4、这个小程序会始终在你的桌面上,你点显示桌面,它还是在你的桌面上
     
    下载地址:http://pan.baidu.com/s/1hGh8U
     
  • 相关阅读:
    linux nohup
    并发编程-多进程模块介绍
    并发编程-多进程
    网络编程-粘包现象
    Typora快捷键Mac
    网络编程
    异常处理
    面向对象-元类介绍
    面向对象-内置方法
    面向对象-反射
  • 原文地址:https://www.cnblogs.com/liulun/p/3797795.html
Copyright © 2011-2022 走看看