zoukankan      html  css  js  c++  java
  • QT的的字体使用(全局自带字体特别好用)

     WIN10下的默认字体居然是Segoe UI,造成各Windows版本显示不一致,可以这样修改Windows的默认字体(重启后生效):

    [HKEY_LOCAL_MACHINE>>SOFTWARE>>Microsoft>>WindowsNT>>CurrentVersion>>FontSubstitutes:Segoe UI = Tahoma]

    但是最好还是软件自己指定显示字体,这样才能做到可控,这样设置全局字体:

    QFont font;
    font.setFamily("MS Shell Dlg 2"); // Tahoma 宋体
    qApp->setFont(font);

    检测全局字体:

    qDebug() << qApp->font().rawName();
    qDebug() << qApp->font().family();
    qDebug() << qApp->font().defaultFamily();
    qDebug() << qApp->font().styleName();
    qDebug() << qApp->font().toString();
    qDebug() << qApp->font().key();

    输出结果(QT的默认字体居然是MS Shell Dlg 2):

    "unknown"
    "MS Shell Dlg 2"
    "Arial"
    ""
    "MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0"
    "MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0"

    ---------------------------------------------------------------------

    另外还可把字体作为资源文件携带,然后再使用,比方说我觉得微软雅黑就不错:

    //将字体文件名传给addApplicationFont,得到字体的Id
    int fontId = QFontDatabase::addApplicationFont("./res/msyh.ttf");
    //将字体Id传给applicationFontFamilies,得到一个QStringList,其中的第一个元素为新添加字体的family
    QString msyh = QFontDatabase::applicationFontFamilies ( fontId ).at(0);
    QFont font(msyh,10);
    //将此字体设为QApplication的默认字体
    QApplication::setFont(font);

    但是看官方文档说明:
    The QFontDatabase class provides information about the fonts available in the underlying window system.
    注意,window system不是指windows,而是指所有的窗口系统。

    ---------------------------------------------------------------------

    QFont 为绘画文本提供制定的字体
    QFontComboBox 提供了选择字体族的下拉列表框
    QFontDatabase 提供了可以在Window 操作系统下能够使用的字体
    QFontDialog 用来选择一个指定的字体
    QFontEngineInfo 用来描述一个指定的字体引擎插件
    QFontEnginePlugin 累提供了字体仓库插件的基础累, 用于嵌入式linux
    QFontInfo 包含了一个字体的常规信息
    QFontDialog 用来弹出对话框 来获得指定的字体

    ---------------------------------------------------------------------

    参考:
    http://mobile.51cto.com/symbian-272552.htm (底下还有系列文章)
    http://blog.csdn.net/Liuqz2009/article/details/7208637

  • 相关阅读:
    土地出让金骤降是“危”还是“机”?
    EasyMonkeyDevice vs MonkeyDevice&amp;HierarchyViewer API Mapping Matrix
    Keepalived+Lvs+Mysql主主复制
    【SDUT 3038】迷之博弈
    js面向对象编程:if中能够使用那些作为推断条件呢?
    crm使用url打开窗口视图
    让你的javascript函数拥有记忆功能,降低全局变量的使用
    crm操作知识库文章实体
    技术揭秘12306改造(一):尖峰日PV值297亿下可每秒出票1032张-CSDN.NET
    大众点评的大数据实践-CSDN.NET
  • 原文地址:https://www.cnblogs.com/findumars/p/4776398.html
Copyright © 2011-2022 走看看