Does QFont::setStyleName work at all?

  • I tried to set the style name of fonts and none of the seem to work on Windows. Here's the code:

        QFontDatabase fdb;
        auto fonts = fdb.families();
        for(auto f:fonts) {
            auto styles = fdb.styles(f);
            for(auto s:styles) {
                QFont font(f);
                auto label = new QLabel(QString::fromLatin1("%1: %2").arg(f).arg(s));

    And all the fonts with the same family render the same regardless of style name set. Is this a know issue?

  • Qt Champions 2017

    For the read method it says

    "depends on system font support, thus only works for OS X and X11 so far. On Windows irregular styles will be added as separate font families so there is no need for this."

    So maybe it has no effect on Windows?

  • @mrjj But the sample code fontsampler does set style name and works.

  • Qt Champions 2017

    @stephenju said:


    ok that is good news then.
    Can work.

    Have you checked your values again the values used in
    QFont font(family, size, weight, italic); ?
    in the sample.

  • @mrjj I check and tried to replicate what the sample does but still doesn't work. I do notice the sample code uses the font in QTextDocument. Not sure if it matters.

    Also, from the documentation, weight and italic shouldn't matter once you set the style name

    However, I got it to work by using QFontDatabase::font() which takes the style name.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.