Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to use "QFontDatabase::addApplicationFont"?
QtWS25 Last Chance

How to use "QFontDatabase::addApplicationFont"?

Scheduled Pinned Locked Moved General and Desktop
3 Posts 2 Posters 15.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    windows8
    wrote on 2 Feb 2013, 03:24 last edited by
    #1

    I want to load a new font from ".ttf" file,so I try to run "QFontDatabase::addApplicationFont".
    It doesn't return -1,but I can't load the font.
    @
    QString loadFontFamilyFromTTF()
    {
    static QString font;
    static bool loaded = false;
    if(!loaded)
    {
    loaded = true;
    int loadedFontID = QFontDatabase::addApplicationFont("I:/QtObjects/edit/debug/MSYHMONO.ttf");
    QStringList loadedFontFamilies = QFontDatabase::applicationFontFamilies(loadedFontID);
    if(!loadedFontFamilies.empty())
    font = loadedFontFamilies.at(0);
    }
    return font;
    }
    @
    @
    QString fontFamily = loadFontFamilyFromTTF();
    qDebug()<<fontFamily;
    QFont font(fontFamily.isEmpty()?QStringLiteral("Courier"):fontFamily,12);
    setFont(font);
    @
    But It doesn't work.
    @
    "Microsoft YaHei Mono"
    QFontEngine::loadEngine: GetTextMetrics failed ()
    QWindowsFontEngine: GetTextMetrics failed ()
    @
    Why?The first qDebug ("qDebug()<<fontFamily;") is true,but QFont can't work with the font family "Microsoft YaHei Mono".
    Thank you very much.

    1 Reply Last reply
    0
    • V Offline
      V Offline
      vidar
      wrote on 2 Feb 2013, 15:03 last edited by
      #2

      I had several issues when creating QFonts statically with newer versions of Qt. Does it work when you create the font dynamically?

      @QFont * myFont;

      QString fontFamily = loadFontFamilyFromTTF();

      myFont = new QFont(fontFamily, 8, QFont::Normal, false);@

      1 Reply Last reply
      0
      • W Offline
        W Offline
        windows8
        wrote on 3 Feb 2013, 01:02 last edited by
        #3

        [quote author="vidar" date="1359817391"]I had several issues when creating QFonts statically with newer versions of Qt. Does it work when you create the font dynamically?

        @QFont * myFont;

        QString fontFamily = loadFontFamilyFromTTF();

        myFont = new QFont(fontFamily, 8, QFont::Normal, false);@[/quote]

        Oh,thank you very much.You are right.

        1 Reply Last reply
        0

        3/3

        3 Feb 2013, 01:02

        • Login

        • Login or register to search.
        3 out of 3
        • First post
          3/3
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved