一、利用字符映射表segmdl2.ttf,窗体显示字符图片。

在win10里面搜“字符映射表”,选择字体segmdl2.ttf,查看图标对应得16进制值。把此字体拷贝到程序的目录下。

二、使用

#ifndef FONTICONS_H
#define FONTICONS_H

#include <QFont>
#include <QObject>
//字符映射表 segmdl2.ttf
class FontIcons
{

public:
    enum IconsId{
        ICONS_SCAN=0xE294,
        ICONS_BROWSE=0xE7C5,
        ICONS_IMAGE_ACQ=0xE722,
        ICONS_PARAM_SET=0xE713,
        ICONS_PREVIEW_IMAGE=0xE7B3,
        ICONS_EXIT_APP=0xE8BB,
        ICONS_MODIFY=0xE104,
        ICONS_CONFIRM_MODIFY=0xE0E7,
        ICONS_LEFT_ARROW=0xF744,
        ICONS_RIGHT_ARROW=0xF745,
        ICONS_ABOUT_APP=0xE19F,
        ICONS_EXIT_PALLET=0xE176,//退出托盘
        ICONS_MANGNIFY=0xE8A3,
    };
    static FontIcons *getInstance();
    void init();
    void setFontSize(int size);
    QFont getFont();
    QChar getIconChar(FontIcons::IconsId code);
    QString getIconText(FontIcons::IconsId code,QString text);

private:
    FontIcons();
    static FontIcons* instance_;
    QFont font_;
    int  fontSize_;

};

#endif // FONTICONS_H
#include "fonticons.h"
#include <QFontDatabase>
#include <QDebug>
FontIcons* FontIcons::instance_ = new FontIcons;
FontIcons::FontIcons()
{

}
FontIcons* FontIcons::getInstance()
{
    return instance_;
}

void FontIcons::init()
{
   int fontId = QFontDatabase::addApplicationFont(":/three_parts/Fonts/segmdl2.ttf");
   QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
   font_.setFamily(fontFamilies.at());

}

void FontIcons::setFontSize(int size)
{
    font_.setPointSize(size);
}

QFont FontIcons::getFont()
{
    return font_;
}

QChar FontIcons::getIconChar(FontIcons::IconsId code)
{
    return QChar((int)code);
}

QString FontIcons::getIconText(FontIcons::IconsId code, QString text)
{
     QString txt = QString("%1%2").arg(getIconChar(code)).arg(text);
     return txt;
}

应用:

QPushButton *btnNavExitApp=new QPushButton(this);
FontIcons *fontIcons=FontIcons::getInstance();
fontIcons->init();
fontIcons->setFontSize();
btnNavExitApp->setText(fontIcons->getIconText(FontIcons::ICONS_EXIT_APP,QString::fromLocal8Bit(" 退出应用")));

Qt 字符映射表 显示图标的更多相关文章

  1. windows操作系统记事本保存操作时间、字符映射表的打开、步骤记录器使用

    记事本自动记录修改时间 你有用记事本记账或写日记的习惯吗?其实在记事本的文档开头输入".LOG"(无引号,字母为大写),之后记录内容并保存,这样以后打开就会看到之前每次修改的时间了 ...

  2. [转]SSIS数据转换组件_派生列、审核、字符映射转换和条件性拆分转换

    本文转自:http://www.cnblogs.com/gudujianxiao/archive/2012/04/14/2446925.html 一 派生列 派生列转换通过对输入列进行类型转换或应用表 ...

  3. 【转】发布的QT程序无法显示图标和图片的问题

    在windows下编译好的QT程序在其他没有安装QT的机器上会出现图标和图片无法正常显示的问题. 这时我们可以通过以下方式来解决: 在release文件夹里创建plugins文件夹,并将QT安装目录下 ...

  4. Qt 按键键值 与 相关字符串 的映射表(转)

    Qt快捷键 映射     "Esc",/*Qt::Key_Escape 0x01000000 */ "Tab",/*Qt::Key_Tab 0x01000001 ...

  5. 【转】Android-Input 按键字符映射文件&输入设备配置文件

    https://source.android.com/devices/input/key-character-map-files 按键字符映射文件 按键字符映射文件(.kcm 文件)负责将 Andro ...

  6. 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题

    在PC机上利用QT开发的应用程序在设置字体时,在PC上运行,可根据自己的设置,字体随之变大或变小.而移植到ARM上运行时发现,显示字体与所设置的字体不用,字体普遍偏小.经过上网搜索发现,是环境变量字库 ...

  7. html小知识点汇总(浏览器导航上显示图标、div无高度时试着清除浮动、文字环绕图片、字体加粗、div按百分比分、已有的不合适的class,针对特定的标签进行修改)

    1.新点击的网页,在浏览器导航上显示图标: 像这种效果: <head> <meta charset="UTF-8"> <meta name=" ...

  8. 在ListActivity中显示图标

    在ListActivity中显示图标,好像并不复杂,实现起来却不轻松. 首先,定义列表中的每一行,这里不是用xml文件定义,而是用一个类定义,CheckBox.ImageView.TextView等控 ...

  9. echarts之字符云tooltip显示混乱问题的解决办法

    echarts字符云中tooltip显示混乱主要表现为一下两点: 1.字体与其显示框内容不对应鼠标识别错误 解决思路: 就是option里的数据要对value降序排序(这一点很关键,是必须的一步) 把 ...

随机推荐

  1. EasyUi Datagrid中footer renderFooter

    默认的'rowStyler' 选项不支持footer,想让footer支持rowStyler的话,dategird就得重写.代码如下. var myview = $.extend({}, $.fn.d ...

  2. django nginx uwsgi 502 Gateway

    前提:腾讯云服务器有个内网ip和外网ip 首先检查使用的端口是否正常可用 1.检查端口是否开放,在腾讯云控制台安全组查看 2.检查防火墙端口是否开放 systemctl start firewalld ...

  3. python常用函数拾零

    Python常用内置函数总结: 整理过程中参考了runoob网站中python内置函数的相关知识点,特此鸣谢!! 原文地址:http://www.runoob.com/python/python-bu ...

  4. 洛谷P1026 统计单词个数【区间dp】

    题目:https://www.luogu.org/problemnew/show/P1026 题意: 给定一个字符串,要求把他分成k段.给定s个单词,问划分成k段之后每段中包含的单词和最大是多少. 一 ...

  5. 在当前目录下配置ansible

    配置ansible.cfg [defaults] inventory = myhost # 指定主机清单文件 host_key_checking = False 配置主机清单文件 [node] nod ...

  6. springbootdruidmybatismysql多数据源事务管理

    springboot+druid+mybatis+mysql+多数据源事务管理 分布式事务在java中的解决方案就是JTA(即Java Transaction API):springboot官方提供了 ...

  7. 多线程:Thread类的Join()方法

    多线程:Thread类的Join()方法 http://blog.163.com/hc_ranxu/blog/static/3672318220095284513678/ 当我们在线程B中调用Thre ...

  8. luogu P4194 矩阵

    嘟嘟嘟 先二分. 令二分的值为\(mid\),则对于每一行都要满足\(|\sum_{i = 1} ^ {n} (A_{ij} - B_{ij})|\),把绝对值去掉,就得到了\((\sum_{i = ...

  9. 查看window用户登录日志

    查看window用户登录日志 能追踪Windows系统登录时间的三种方法 Windows登录日志详解 事件ID=4798应该对应的是锁定操作(Win+L)

  10. js中几种动态创建元素并设置文本内容的比较,及性能测试。

    内容 1 appendChild (都兼容) 2.insertAdjacentHTML (都兼容) 3.innerHTML (都兼容) 4.createDocumentFragment (都兼容) 动 ...