QFontDatabase 类提供底层窗口系统中可用字体的有关信息。 更多...
头: | #include <QFontDatabase> |
CMake: |
find_package(Qt6 COMPONENTS Gui REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
注意: 此类的所有函数 thread-safe .
enum | SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont } |
enum | 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 ) |
此类的最常见用法是查询数据库为列表字体 families () 和为 pointSizes () 和 styles () 可用于各系列。替代 pointSizes () 是 smoothSizes () 返回给定系列的大小且风格看起来很有吸引力。
若字体系列可用于两个或更多铸造厂,则铸造厂名包括在系列名中;例如:Helvetica [Adobe] 和 Helvetica [Cronyx]。当指定系列时,可以使用以连字符连接的旧 foundry-family 格式,或括在方括号内的 family [foundry] 格式;例如:Cronyx-Helvetica 或 Helvetica [Cronyx]。若有铸造厂,系列始终使用括在方括号内的格式,情况就像值返回通过 families ().
font () 函数返回 QFont 的给定系列、样式及点大小。
可以校验系列和风格的组合,看它是否为 italic () 或 bold (),及检索其 weight ()。同样,可以调用 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 ,和 字符映射范例 .
[since 5.2]
enum QFontDatabase::
SystemFont
常量 | 值 | 描述 |
---|---|---|
QFontDatabase::GeneralFont
|
0
|
默认系统字体。 |
QFontDatabase::FixedFont
|
1
|
系统推荐的固定字体。 |
QFontDatabase::TitleFont
|
2
|
用于标题的系统标准字体。 |
QFontDatabase::SmallestReadableFont
|
3
|
最小可读系统字体。 |
该枚举在 Qt 5.2 引入或被修改。
常量 | 值 | 描述 |
---|---|---|
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::Myanmar
|
22
|
|
QFontDatabase::Georgian
|
23
|
|
QFontDatabase::Khmer
|
24
|
|
QFontDatabase::SimplifiedChinese
|
25
|
|
QFontDatabase::TraditionalChinese
|
26
|
|
QFontDatabase::Japanese
|
27
|
|
QFontDatabase::Korean
|
28
|
|
QFontDatabase::Vietnamese
|
29
|
|
QFontDatabase::Symbol
|
30
|
|
QFontDatabase::Other
|
Symbol
|
(如同 Symbol) |
QFontDatabase::Ogham
|
31
|
|
QFontDatabase::Runic
|
32
|
|
QFontDatabase::Nko
|
33
|
[static]
int
QFontDatabase::
addApplicationFont
(const
QString
&
fileName
)
Loads the font from the file specified by fileName and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont () or to retrieve the list of family names contained in the font.
函数返回 -1,若无法加载字体。
Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported.
注意: Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.
另请参阅 addApplicationFontFromData (), applicationFontFamilies (),和 removeApplicationFont ().
[static]
int
QFontDatabase::
addApplicationFontFromData
(const
QByteArray
&
fontData
)
Loads the font from binary data specified by fontData and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont () or to retrieve the list of family names contained in the font.
函数返回 -1,若无法加载字体。
Currently only TrueType fonts and TrueType font collections are supported.
注意: Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.
另请参阅 addApplicationFont (), applicationFontFamilies (),和 removeApplicationFont ().
[static]
QStringList
QFontDatabase::
applicationFontFamilies
(
int
id
)
Returns a list of font families for the given application font identified by id .
另请参阅 addApplicationFont () 和 addApplicationFontFromData ().
[static]
bool
QFontDatabase::
bold
(const
QString
&
family
, const
QString
&
style
)
返回
true
若字体拥有系列
family
和样式
style
为加粗;否则返回
false
.
[static]
QStringList
QFontDatabase::
families
(
QFontDatabase::WritingSystem
writingSystem
= Any)
返回可用字体系列的排序列表,支持 writingSystem .
若系列存在于几个铸造厂,则该字体的返回名称形式为 family [foundry]。范例:Times [Adobe]、Times [Cronyx]、Palatino。
另请参阅 writingSystems ().
[static]
QFont
QFontDatabase::
font
(const
QString
&
family
, const
QString
&
style
,
int
pointSize
)
返回 QFont object that has family family , style style and point size pointSize . If no matching font could be created, a QFont object that uses the application's default font is returned.
[static]
bool
QFontDatabase::
isBitmapScalable
(const
QString
&
family
, const
QString
&
style
= QString())
返回
true
若字体拥有系列
family
和样式
style
is a scalable bitmap font; otherwise returns
false
. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by
smoothSizes
().
另请参阅 isScalable () 和 isSmoothlyScalable ().
[static]
bool
QFontDatabase::
isFixedPitch
(const
QString
&
family
, const
QString
&
style
= QString())
返回
true
若字体拥有系列
family
和样式
style
is fixed pitch; otherwise returns
false
.
[static, since 5.5]
bool
QFontDatabase::
isPrivateFamily
(const
QString
&
family
)
返回
true
if and only if the
family
font family is private.
This happens, for instance, on macOS and iOS, where the system UI fonts are not accessible to the user. For completeness, QFontDatabase::families () returns all font families, including the private ones. You should use this function if you are developing a font selection control in order to keep private fonts hidden.
该函数在 Qt 5.5 引入。
另请参阅 families ().
[static]
bool
QFontDatabase::
isScalable
(const
QString
&
family
, const
QString
&
style
= QString())
返回
true
若字体拥有系列
family
和样式
style
is scalable; otherwise returns
false
.
另请参阅 isBitmapScalable () 和 isSmoothlyScalable ().
[static]
bool
QFontDatabase::
isSmoothlyScalable
(const
QString
&
family
, const
QString
&
style
= QString())
返回
true
若字体拥有系列
family
和样式
style
is smoothly scalable; otherwise returns
false
。若此函数返回
true
, it's safe to scale this font to any size, and the result will always look attractive.
另请参阅 isScalable () 和 isBitmapScalable ().
[static]
bool
QFontDatabase::
italic
(const
QString
&
family
, const
QString
&
style
)
返回
true
若字体拥有系列
family
和样式
style
为斜体;否则返回
false
.
[static]
QList
<
int
> QFontDatabase::
pointSizes
(const
QString
&
family
, const
QString
&
styleName
= QString())
Returns a list of the point sizes available for the font that has family family 和样式 styleName . The list may be empty.
另请参阅 smoothSizes () 和 standardSizes ().
[static]
bool
QFontDatabase::
removeAllApplicationFonts
()
Removes all application-local fonts previously added using addApplicationFont () 和 addApplicationFontFromData ().
返回
true
若字体卸载成功;否则返回
false
.
另请参阅 removeApplicationFont (), addApplicationFont (),和 addApplicationFontFromData ().
[static]
bool
QFontDatabase::
removeApplicationFont
(
int
id
)
Removes the previously loaded application font identified by
id
。返回
true
if unloading of the font succeeded; otherwise returns
false
.
另请参阅 removeAllApplicationFonts (), addApplicationFont (),和 addApplicationFontFromData ().
[static]
QList
<
int
> QFontDatabase::
smoothSizes
(const
QString
&
family
, const
QString
&
styleName
)
Returns the point sizes of a font that has family family 和样式 styleName that will look attractive. The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to pointSizes ().
另请参阅 pointSizes () 和 standardSizes ().
[static]
QList
<
int
> QFontDatabase::
standardSizes
()
返回标准字体大小的列表。
另请参阅 smoothSizes () 和 pointSizes ().
[static]
QString
QFontDatabase::
styleString
(const
QFont
&
font
)
Returns a string that describes the style of the font . For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.
[static]
QString
QFontDatabase::
styleString
(const
QFontInfo
&
fontInfo
)
Returns a string that describes the style of the fontInfo . For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.
[static]
QStringList
QFontDatabase::
styles
(const
QString
&
family
)
Returns a list of the styles available for the font family family . Some example styles: "Light", "Light Italic", "Bold", "Oblique", "Demi". The list may be empty.
另请参阅 families ().
[static, since 5.2]
QFont
QFontDatabase::
systemFont
(
QFontDatabase::SystemFont
type
)
Returns the most adequate font for a given type case for proper integration with the system's look and feel.
该函数在 Qt 5.2 引入。
另请参阅 QGuiApplication::font ().
[static]
int
QFontDatabase::
weight
(const
QString
&
family
, const
QString
&
style
)
Returns the weight of the font that has family family 和样式 style . If there is no such family and style combination, returns -1.
[static]
QString
QFontDatabase::
writingSystemName
(
QFontDatabase::WritingSystem
writingSystem
)
Returns the names the writingSystem (e.g. for displaying to the user in a dialog).
[static]
QString
QFontDatabase::
writingSystemSample
(
QFontDatabase::WritingSystem
writingSystem
)
Returns a string with sample characters from writingSystem .
[static]
QList
<
QFontDatabase::WritingSystem
> QFontDatabase::
writingSystems
()
Returns a sorted list of the available writing systems. This is list generated from information about all installed fonts on the system.
另请参阅 families ().
[static]
QList
<
QFontDatabase::WritingSystem
> QFontDatabase::
writingSystems
(const
QString
&
family
)
Returns a sorted list of the writing systems supported by a given font family .
另请参阅 families ().