如何查询当前环境下,Qt所支持的字体的名称

目前从事嵌入式系统下的Qt应用程序开发;

程序需要支持中文,需要想qt的字体目录下导入中文字体;

目前导入为微软雅黑字体;当时不知道setfamily的时候需要使用的是什么名称;

该如何解决呢?

Qt已经给出了解决方案了;

使用QFontDatabase类;

根据帮助文档:

Detailed Description

The QFontDatabase class provides information about the fonts available in the underlying window system.

具体描述:

QFontDatabase类提供了当前系统下可用的字体的信息;

该类其中一个函数:

QStringList QFontDatabase::families ( WritingSystem writingSystem = Any ) const

Returns a sorted list of the available font families which support the writingSystem.

返回支持writingSystem的所有字体类型

那么就可以使用这个函数了解我们需要的信息;

例如:

QFontDatabase database;
foreach (const QString &family, database.families())
{
     qDebug()<<family;
}
以上这段代码就可以枚举出系统支持的所有字体的名称;

    QFontDatabase database;
    foreach (const QString &family, database.families(QFontDatabase::SimplifiedChinese)) 
    {
        qDebug()<<family;
    }
以上这段代码就可以枚举出系统中所有支持中文的字体名称。

根据打印信息就能知道微软雅黑字体的名称了:

Microsoft YaHei



你可能感兴趣的:(如何查询当前环境下,Qt所支持的字体的名称)