QFontDatabase 類提供底層窗口係統中可用字體的有關信息。 更多...
| 頭: |
#include <QFontDatabase>
|
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
|
| qmake: |
QT += gui
|
注意: 此類的所有函數 綫程安全 .
| enum | SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont } |
| enum | WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, …, Nko } |
(從 6.8 起)
void
|
addApplicationFallbackFontFamily (QChar::Script script , const QString & familyName ) |
| int | addApplicationFont (const QString & fileName ) |
| int | addApplicationFontFromData (const QByteArray & fontData ) |
(從 6.8 起)
QStringList
|
applicationFallbackFontFamilies (QChar::Script script ) |
| 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 () |
(從 6.8 起)
bool
|
removeApplicationFallbackFontFamily (QChar::Script script , const QString & familyName ) |
| bool | removeApplicationFont (int id ) |
(從 6.8 起)
void
|
setApplicationFallbackFontFamilies (QChar::Script script , const QStringList & familyNames ) |
| 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 ().
The 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 .
| 常量 | 值 | 描述 |
|---|---|---|
QFontDatabase::GeneralFont
|
0
|
默認係統字體。 |
QFontDatabase::FixedFont
|
1
|
係統推薦的固定字體。 |
QFontDatabase::TitleFont
|
2
|
用於標題的係統標準字體。 |
QFontDatabase::SmallestReadableFont
|
3
|
最小可讀係統字體。 |
| 常量 | 值 | 描述 |
|---|---|---|
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, since 6.8]
void
QFontDatabase::
addApplicationFallbackFontFamily
(
QChar::Script
script
, const
QString
&
familyName
)
添加 familyName as an application-defined fallback font for script .
When Qt encounters characters that are not supported by the selected font, it will search through a list of fallback fonts to find a match for them. This ensures that combining multiple scripts in a single string is possible, even if the main font does not support them.
The list of fallback fonts is selected based on the script of the string as well as other conditions, such as system language.
While the system fallback list is usually sufficient, there are cases where it is useful to override the default behavior. One such case is for using application fonts as fallback to ensure cross-platform consistency.
In another case the application may be written in a script with regional differences and want to run it untranslated in multiple regions. In this case, it might be useful to override the local region's fallback with one that matches the language of the application.
By passing
familyName
to addApplicationFallbackFontFamily(), this will become the preferred family when matching missing characters from
script
。
script
must be a valid script (
QChar::Script_Latin
or higher). When adding multiple fonts for the same script, they will be prioritized in reverse order, so that the last family added will be checked first and so on.
注意:
Qt's font matching algorithm considers
QChar::Script_Common
(undetermined script) and
QChar::Script_Latin
the same. Adding a fallback for either of these will also apply to the other.
該函數在 Qt 6.8 引入。
另請參閱 setApplicationFallbackFontFamilies (), removeApplicationFallbackFontFamily (),和 applicationFallbackFontFamilies ().
[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.
另請參閱 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, TrueType font collections, and OpenType fonts are supported.
另請參閱 addApplicationFont (), applicationFontFamilies (),和 removeApplicationFont ().
[static, since 6.8]
QStringList
QFontDatabase::
applicationFallbackFontFamilies
(
QChar::Script
script
)
Returns the list of application-defined fallback font families previously added for script 通過 addApplicationFallbackFontFamily () 函數。
該函數在 Qt 6.8 引入。
另請參閱 setApplicationFallbackFontFamilies (), addApplicationFallbackFontFamily (),和 removeApplicationFallbackFontFamily ().
[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]
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.
另請參閱 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, since 6.8]
bool
QFontDatabase::
removeApplicationFallbackFontFamily
(
QChar::Script
script
, const
QString
&
familyName
)
移除 familyName from the list of application-defined fallback fonts for script , provided that it has previously been added with addApplicationFallbackFontFamily ().
Returns true if the family name was in the list and false if it was not.
該函數在 Qt 6.8 引入。
另請參閱 addApplicationFallbackFontFamily (), setApplicationFallbackFontFamilies (),和 applicationFallbackFontFamilies ().
[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, since 6.8]
void
QFontDatabase::
setApplicationFallbackFontFamilies
(
QChar::Script
script
, const
QStringList
&
familyNames
)
Sets the list of application-defined fallback fonts for script to familyNames .
When Qt encounters a character in script which is not supported by the current font, it will check the families in familyNames , in order from first to last, until it finds a match. See addApplicationFallbackFontFamily () 瞭解更多細節。
This function overwrites the current list of application-defined fallback fonts for script .
該函數在 Qt 6.8 引入。
另請參閱 addApplicationFallbackFontFamily (), removeApplicationFallbackFontFamily (),和 applicationFallbackFontFamilies ().
[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]
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.
另請參閱 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 ().