牛骨文教育服务平台(让学习变的简单)
博文笔记

Qt应用程序中设置字体

创建时间:2014-05-04 投稿人: 浏览次数:121

                                       Qt应用程序中设置字体

         应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等。这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等)。Qt里面也有对应的类。接下来我们主要对这几个类进行详细的说明,最后举例说明它们的应用。

1、Qt中相关的类:QFontDatabase、QFont、QFontInfo和QFontMetrics、QFontMetricsF;

(1)QFontDatabase

QFontDatabase类提供了底层窗口系统所提供的系统可用的字体。

      该类最常见的用法就是调用接口查询数据库,获取系统支持的字体,以及每种字体支持的大小和风格。smoothSizes()类似pointSizes(),但是前者返回的是在某种字体(family)下某种风格(style)支持的最好的字号。

       font()函数返回指定的字体,风格和字号的QFont。

       QFontDatabase也支持一些静态函数,例如:standardSizes()。可以使用writingSystemName()获取对应writingSystem的字符串描述。

代码片段:

QFontDatabase database;
QTreeWidget fontTree;
fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");

foreach (const QString &family, database.families()) {
    QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
    familyItem->setText(0, family);

    foreach (const QString &style, database.styles(family)) {
        QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
        styleItem->setText(0, style);

        QString sizes;
        foreach (int points, database.smoothSizes(family, style))
            sizes += QString::number(points) + " ";

        styleItem->setText(1, sizes.trimmed());
    }
}

(2)QFont和QFontInfo

          对font的解释如下:a specific size and style of type within a type family。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。