一、利用字符映射表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. go语言日期时间格式化

    原文: http://www.golangprograms.com/get-current-date-and-time-in-various-format-in-golang.html package ...

  2. [zhuanzai]Bean对象注入失败 .NoSuchBeanDefinitionException: No qualifying bean of type..

    nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying b ...

  3. 通过LVM备份mysql数据库脚本

    #!/bin/bash #******************************************************************** #encoding -*-utf8- ...

  4. 1.安装Loucust

    python 3.x 通过pip安装: pip install locustio 如果是以分布式队列运行locust,需要装一种通信队列的库pyzmq  :pip install pyzmq 安装成功 ...

  5. NOI2018 你的名字——SAM+线段树合并

    题目链接在这里洛谷/LOJ 题目大意 有一个串\(S\),每次询问给你一个串\(T\),两个数\(L\)和\(R\),问你\(T\)有多少个本质不同的子串不是\(S[L,R]\)的子串 SOLUTIO ...

  6. jsp前台输入框不输入值,后台怎么取出整型?

    当前台输入框限定整型,后台取值就会出现很多问题. eg: Integer.parseInt(request.getParameter("uno"));当前台的文本框不输入值,直接点 ...

  7. WebUI自动化之Java语言提高

    单独写一个函数和把函数写在类中的区别: 单独写一个函数,函数只能完成一个功能,团队开发.让第三方使用时比较麻烦: 项目管理和构建自动化工具Maven:

  8. Vue 项目中对路由文件进行拆分(解构的方法)

    项目需求场景: 在开发项目过程中,在项目过于庞大,路由信息非常多的情况下,如果将路由配置信息都放在一个文件里面,那么这个JS是不方便维护的, 那么,这个时候需要我们把这个庞大的路由文件,根据项目功能分 ...

  9. Python中send和sendall的区别

    官方文档对socket模式下的socket.send() 和 socket.sendall()解释如下: sock.sendall(string[, flags]) Send data to the ...

  10. Java线程的启动和停止(一)

    如何构造线程 在运行线程之前需要先构造线程对象,线程对象的构造需要指定线程所需要的属性,比如:所属线程组.线程优先级.是否为Daemon线程等信息.下面我们看一下,java.lang.Thread中对 ...