QFontDatabase类
QFontDatabase类提供有关底层窗口系统中可用的字体的信息。更多...
头文件 | #include <QFontDatabase> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
注意:本类中所有函数均为线程安全。
公共类型
枚举 | SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont } |
枚举 | WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, …, Nko } |
静态公共成员
int | addApplicationFont(const QString &fileName) |
int | addApplicationFontFromData(const QByteArray &fontData) |
QStringList | applicationFontFamilies(int id) |
bool | bold(const QString &family, const QString &style) |
QStringList | families(QFontDatabase::WritingSystem writingSystem = Any) |
QFont | font(const QString &family, const QString &style, int pointSize) |
bool | isBitmapScalable(const QString &family, const QString &style = QString()) |
bool | isFixedPitch(const QString &family, const QString &style = QString()) |
bool | isPrivateFamily(const QString &family) |
bool | isScalable(const QString &family, const QString &style = QString()) |
bool | isSmoothlyScalable(const QString &family, const QString &style = QString()) |
bool | italic(const QString &family, const QString &style) |
QList<int> | pointSizes(const QString &family, const QString &styleName = QString()) |
bool | removeAllApplicationFonts() |
bool | removeApplicationFont(int id) |
QList<int> | smoothSizes(const QString &family, const QString &styleName) |
QList<int> | standardSizes() |
QString | styleString(const QFont &font) |
QString | styleString(const QFontInfo &fontInfo) |
QStringList | styles(const QString &family) |
QFont | systemFont(QFontDatabase::SystemFont type) |
int | weight(const QString &family, const QString &style) |
QString | writingSystemName(QFontDatabase::WritingSystem writingSystem) |
QString | writingSystemSample(QFontDatabase::WritingSystem writingSystem) |
QList<QFontDatabase::WritingSystem> | writingSystems() |
QList<QFontDatabase::WritingSystem> | writingSystems(const QString &family) |
详细描述
此类的最常见用法是查询数据库获取字体家族()的列表,以及每个家族可用的点大小()和样式()。pointSizes()的替代方案是smoothSizes(),它会返回在给定家族和样式中看起来吸引人的大小。
如果字体家族可以从两个或更多铸造厂获取,则在家族名称中包含铸造厂名称;例如:“Helvetica [Adobe]”和“Helvetica [Cronyx]”。当您指定家族时,您可以使用旧的连字符“foundry-family”格式或括号“family [foundry]”格式;例如:“Cronyx-Helvetica”或“Helvetica [Cronyx]”。如果家族有铸造厂,则始终使用括号格式返回,就像返回给families()的值一样。
font()函数给定了家族、样式和点大小,返回一个QFont。
可以检查家族和样式的组合是否为斜体()或粗体(),并检索其权重。同样,我们可以调用isBitmapScalable(),isSmoothlyScalable(),isScalable和isFixedPitch。
使用styleString()来获取样式的文本版本。
QFontDatabase类提供了一些辅助函数,例如standardSizes()。您可以使用writingSystemName()获取书写系统的描述,并使用writingSystemSample()获取书写系统中字符的样本。
示例
QTreeWidget fontTree; fontTree.setColumnCount(2); fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes"); const QStringList fontFamilies = QFontDatabase::families(); for (const QString &family : fontFamilies) { QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree); familyItem->setText(0, family); const QStringList fontStyles = QFontDatabase::styles(family); for (const QString &style : fontStyles) { QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem); styleItem->setText(0, style); QString sizes; const QList<int> smoothSizes = QFontDatabase::smoothSizes(family, style); for (const auto &points : smoothSizes) sizes += QString::number(points) + ' '; styleItem->setText(1, sizes.trimmed()); } }
此示例获取字体家族列表、每个家族的样式列表以及家族和样式组合的点大小列表,并在树视图中显示这些信息。
另请参阅QFont、QFontInfo和QFontMetrics。
成员类型文档
enum QFontDatabase::SystemFont
常数 | 值 | 描述 |
---|---|---|
QFontDatabase::GeneralFont | 0 | 默认系统字体。 |
QFontDatabase::FixedFont | 1 | 系统推荐的固定字体。 |
QFontDatabase::TitleFont | 2 | 系统标准标题字体。 |
QFontDatabase::SmallestReadableFont | 3 | 可读性最小的系统字体。 |
enum QFontDatabase::WritingSystem
常数 | 值 | 描述 |
---|---|---|
QFontDatabase::Any | 0 | |
QFontDatabase::Latin | 1 | |
QFontDatabase::Greek | 2 | |
QFontDatabase::Cyrillic | 3 | |
QFontDatabase::Armenian | 4 | |
QFontDatabase::Hebrew | 5 | |
QFontDatabase::Arabic | 6 | |
QFontDatabase::Syriac | 7 | |
QFontDatabase::Thaana | 8 | |
QFontDatabase::Devanagari | 9 | |
QFontDatabase::Bengali | 10 | |
QFontDatabase::Gurmukhi | 11 | |
QFontDatabase::Gujarati | 12 | |
QFontDatabase::Oriya | 13 | |
QFontDatabase::Tamil | 14 | |
QFontDatabase::Telugu | 15 | |
QFontDatabase::Kannada | 16 | |
QFontDatabase::Malayalam | 17 | |
QFontDatabase::Sinhala | 18 | |
QFontDatabase::Thai | 19 | |
QFontDatabase::Lao | 20 | |
QFontDatabase::Tibetan | 21 | |
QFontDatabase::缅甸 | 22 | |
QFontDatabase::格鲁吉亚 | 23 | |
QFontDatabase::柬埔寨 | 24 | |
QFontDatabase::简体中文 | 25 | |
QFontDatabase::繁体中文 | 26 | |
QFontDatabase::日语 | 27 | |
QFontDatabase::韩语 | 28 | |
QFontDatabase::越南语 | 29 | |
QFontDatabase::符号 | 30 | |
QFontDatabase::其他 | 符号 | (与符号相同) |
QFontDatabase::奥甘字母 | 31 | |
QFontDatabase::鲁尼字母 | 32 | |
QFontDatabase::纳科 | 33 |
成员函数文档
[静态]
int QFontDatabase::addApplicationFont(const QString &fileName)
加载由 fileName 指定的文件中的字体,并将其提供给应用程序。返回一个 ID,可用于通过 removeApplicationFont() 删除字体,或检索字体中包含的字体名称列表。
如果无法加载字体,函数返回 -1。
目前仅支持 TrueType 字体、TrueType 字体集合和 OpenType 字体。
另请参阅 addApplicationFontFromData()、applicationFontFamilies() 和 removeApplicationFont()。
[静态]
int QFontDatabase::addApplicationFontFromData(const QByteArray &fontData)
从由 fontData 指定的二进制数据中加载字体,并将其提供给应用程序。返回一个 ID,可用于通过 removeApplicationFont() 再次删除字体或检索字体中包含的字体名称列表。
如果无法加载字体,函数返回 -1。
目前仅支持 TrueType 字体、TrueType 字体集合和 OpenType 字体。
另请参阅 addApplicationFont()、applicationFontFamilies() 和 removeApplicationFont()。
[静态]
QStringList QFontDatabase::applicationFontFamilies(int id)
返回由 id 标识的应用程序字体的字体家族列表。
另请参阅 addApplicationFont() 和 addApplicationFontFromData()。
[静态]
QString QFontDatabase::bold(const QString &family, const QString &style)
如果具有 family 家族和 style 风格的字体是粗体,则返回 true
;否则返回 false
。
[静态]
QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = Any)
返回支持 writingSystem 的可用字体家族的排序列表。
如果某个家族存在于多个字体库中,返回的该字体名称将采用 "family [foundry]" 的形式。示例: "Times [Adobe]"、"Times [Cronyx]"、 "Palatino"。
另请参阅 writingSystems()。
[静态]
QFont QFontDatabase::font(const QString &family, const QString &style, int pointSize)
返回一个具有字体族 family、样式 style 和点大小 pointSize 的 QFont 对象。如果无法创建匹配的字体,则返回一个使用应用程序默认字体的 QFont 对象。
[静态]
bool QFontDatabase::isBitmapScalable(const QString &family, const QString &style = QString())
如果具有字体族 family 和样式 style 的字体是可缩放位图字体,则返回 true
;否则返回 false
。缩放位图字体通常会产生难以阅读的结果,因为字体的像素被缩放。如果您需要缩放位图字体,最好将其缩放到 smoothSizes() 返回的固定尺寸之一。
参见 isScalable() 和 isSmoothlyScalable。
[静态]
bool QFontDatabase::isFixedPitch(const QString &family, const QString &style = QString())
如果具有字体族 family 和样式 style 的字体是等宽字体,则返回 true
;否则返回 false
。
[静态]
bool QFontDatabase::isPrivateFamily(const QString &family)
如果且仅当字体族 family 是私有字体时,返回 true
。
例如,在 macOS 和 iOS 上,系统 UI 字体对用户不可用。为了完整性,QFontDatabase::families() 返回所有字体族,包括私有字体。如果您正在开发字体选择控件,则应使用此函数以隐藏私有字体。
参见 families。
[静态]
bool QFontDatabase::isScalable(const QString &family, const QString &style = QString())
如果具有字体族 family 和样式 style 的字体是可缩放字体,则返回 true
;否则返回 false
。
参见 isBitmapScalable() 和 isSmoothlyScalable。
[静态]
bool QFontDatabase::isSmoothlyScalable(const QString &family, const QString &style = QString())
如果具有字体族 family 和样式 style 的字体是平滑可缩放的,则返回 true
;否则返回 false
。如果此函数返回 true
,则可以安全地将此字体缩放到任何大小,并且结果始终看起来很吸引人。
参见 isScalable() 和 isBitmapScalable。
[静态]
bool QFontDatabase::italic(const QString &family, const QString &style)
如果具有family字体和style样式的字体是斜体,则返回true
;否则返回false
。
[静态]
QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())
返回适合具有family字体和styleName样式的字体的点大小列表。列表可能为空。
另请参阅smoothSizes()和standardSizes。
[静态]
bool QFontDatabase::removeAllApplicationFonts()
删除之前使用addApplicationFont()和addApplicationFontFromData()添加的所有应用程序本地字体。
如果字体卸载成功,则返回true
;否则返回false
。
另请参阅removeApplicationFont、addApplicationFont和addApplicationFontFromData。
[静态]
bool QFontDatabase::removeApplicationFont(int id)
删除通过id标识的先前加载的应用程序字体。如果字体卸载成功,则返回true
;否则返回false
。
另请参阅removeAllApplicationFonts、addApplicationFont和addApplicationFontFromData。
[静态]
QList<int> QFontDatabase::smoothSizes(const QString &family, const QString &styleName)
返回具有family字体和styleName样式的点大小,该点大小看起来很吸引人。列表可能为空。对于不可缩放字体和位图可缩放字体,此函数与pointSizes等效。
另请参阅pointSizes和standardSizes。
[静态]
QList<int> QFontDatabase::standardSizes()
返回标准字体大小的列表。
另请参阅smoothSizes和pointSizes。
[静态]
QString QFontDatabase::styleString(const QFont &font)
返回描述font样式的字符串。例如,“Bold Italic”、“Bold”、“Italic”或“Normal”。可能会返回空字符串。
[静态]
QString QFontDatabase::styleString(const QFontInfo &fontInfo)
返回描述fontInfo
样式的字符串。例如,“加粗斜体”,“加粗”,“斜体”或“常规”。可能返回空字符串。
[静态]
QStringList QFontDatabase::styles(const QString &family)
返回可用于字体族family
的样式列表。一些示例样式:“轻”, “轻斜体”, “加粗”, “倾斜”, “半粗”。列表可能为空。
参见 families。
[静态]
QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)
返回最适合给定type
情况的字体,以便与系统的外观和感觉良好集成。
[静态]
int QFontDatabase::weight(const QString &family, const QString &style)
返回具有family
和style
样式的字体的重量。如果没有此类家族和样式组合,则返回-1。
[静态]
QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)
返回writingSystem
的名称(例如,在对话框中显示给用户)。
[静态]
QString QFontDatabase::writingSystemSample(QFontDatabase::WritingSystem writingSystem)
返回来自writingSystem
的示例字符字符串。
[静态]
QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems()
返回可用书写系统的有序列表。这是根据系统上安装的所有字体的信息生成的列表。
参见 families。
[静态]
QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems(const QString &family)
返回支持给定字体family
的书写系统的有序列表。
参见 families。
© 2024 Qt公司有限公司。此处包含的文档贡献的版权为各自所有者的版权。此处提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt及相应标志是芬兰以及/或世界各地Qt公司有限责任公司的商标。所有其他商标均为各自所有者的财产。