이 페이지에서

QFontDatabase Class

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 }

정적 공용 멤버

(since 6.9) void addApplicationEmojiFontFamily(const QString &familyName)
(since 6.8) void addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
int addApplicationFont(const QString &fileName)
int addApplicationFontFromData(const QByteArray &fontData)
(since 6.9) QStringList applicationEmojiFontFamilies()
(since 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()
(since 6.9) bool removeApplicationEmojiFontFamily(const QString &familyName)
(since 6.8) bool removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
bool removeApplicationFont(int id)
(since 6.9) void setApplicationEmojiFontFamilies(const QStringList &familyNames)
(since 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() 함수가 반환하는 값과 마찬가지로 항상 괄호로 묶인 형식으로 반환됩니다.

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.

멤버 유형 문서

enum QFontDatabase::SystemFont

상수값설명
QFontDatabase::GeneralFont0기본 시스템 글꼴.
QFontDatabase::FixedFont1시스템에서 권장하는 고정 글꼴입니다.
QFontDatabase::TitleFont2제목용 시스템 표준 글꼴입니다.
QFontDatabase::SmallestReadableFont3읽을 수 있는 가장 작은 시스템 글꼴입니다.

enum QFontDatabase::WritingSystem

상수값설명
QFontDatabase::Any0 
QFontDatabase::Latin1 
QFontDatabase::Greek2 
QFontDatabase::Cyrillic3 
QFontDatabase::Armenian4 
QFontDatabase::Hebrew5 
QFontDatabase::Arabic6 
QFontDatabase::Syriac7 
QFontDatabase::Thaana8 
QFontDatabase::Devanagari9 
QFontDatabase::Bengali10 
QFontDatabase::Gurmukhi11 
QFontDatabase::Gujarati12 
QFontDatabase::Oriya13 
QFontDatabase::Tamil14 
QFontDatabase::Telugu15 
QFontDatabase::Kannada16 
QFontDatabase::Malayalam17 
QFontDatabase::Sinhala18 
QFontDatabase::Thai19 
QFontDatabase::Lao20 
QFontDatabase::Tibetan21 
QFontDatabase::Myanmar22 
QFontDatabase::Georgian23 
QFontDatabase::Khmer24 
QFontDatabase::SimplifiedChinese25 
QFontDatabase::TraditionalChinese26 
QFontDatabase::Japanese27 
QFontDatabase::Korean28 
QFontDatabase::Vietnamese29 
QFontDatabase::Symbol30 
QFontDatabase::OtherSymbol(Symbol과 동일)
QFontDatabase::Ogham31 
QFontDatabase::Runic32 
QFontDatabase::Nko33 

멤버 함수 문서

[static, since 6.9] void QFontDatabase::addApplicationEmojiFontFamily(const QString &familyName)

familyName 를 애플리케이션 정의 이모지 글꼴로 추가합니다.

다색 이모지나 이모지 시퀀스를 표시할 때, Qt는 기본적으로 시스템의 기본 이모지 글꼴을 우선적으로 사용합니다. 때로는 특정 시각적 스타일을 구현하거나 시스템에서 지원하지 않는 이모지를 표시하기 위해 애플리케이션에서 기본 설정을 재정의해야 할 수도 있습니다.

이 함수는 Qt 6.9에서 도입되었습니다.

removeApplicationEmojiFontFamily, setApplicationEmojiFontFamilies(), applicationEmojiFontFamilies() 및 addApplicationFallbackFontFamily()도 참조하십시오 .

[static, since 6.8] void QFontDatabase::addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)

script 에 대해 ‘ familyName ’을 애플리케이션 정의 대체 글꼴로 추가합니다.

Qt는 선택된 글꼴에서 지원되지 않는 문자를 만나면 대체 글꼴 목록을 검색하여 해당 문자와 일치하는 글꼴을 찾습니다. 이를 통해 주 글꼴이 지원하지 않는 경우에도 단일 문자열 내에서 여러 문자 체계를 조합할 수 있습니다.

대체 글꼴 목록은 문자열의 문자 체계와 시스템 언어와 같은 기타 조건을 바탕으로 선택됩니다.

일반적으로 시스템의 대체 글꼴 목록만으로도 충분하지만, 기본 동작을 재정의하는 것이 유용한 경우도 있습니다. 그 중 하나는 크로스 플랫폼 일관성을 보장하기 위해 애플리케이션 글꼴을 대체 글꼴로 사용하는 경우입니다.

또 다른 경우로, 애플리케이션이 지역별 차이가 있는 스크립트로 작성되었으며 여러 지역에서 번역 없이 실행하고자 할 수 있습니다. 이 경우, 해당 지역의 대체 목록을 애플리케이션 언어에 맞는 것으로 재정의하는 것이 유용할 수 있습니다.

familyName 를 addApplicationFallbackFontFamily()에 전달하면, script 에서 누락된 문자를 매칭할 때 이 글꼴 패밀리가 우선적으로 사용됩니다. script 는 유효한 문자 체계(QChar::Script_Latin 이상)여야 합니다. 동일한 문자 체계에 대해 여러 글꼴을 추가할 경우, 우선순위는 역순으로 적용되므로 마지막으로 추가된 패밀리가 먼저 확인되는 식으로 처리됩니다.

참고: Qt의 글꼴 매칭 알고리즘은 ‘ QChar::Script_Common ’(미지정 스크립트)와 ‘ QChar::Script_Latin ’을 동일하게 취급합니다. 이 중 하나에 대한 대체 글꼴을 추가하면 다른 하나에도 동일하게 적용됩니다.

이 함수는 Qt 6.8에서 도입되었습니다.

setApplicationFallbackFontFamilies(), removeApplicationFallbackFontFamily(), applicationFallbackFontFamilies()도 참조하십시오 .

[static] int QFontDatabase::addApplicationFont(const QString &fileName)

fileName 로 지정된 파일에서 글꼴을 불러와 응용 프로그램에서 사용할 수 있도록 합니다. 반환된 ID를 사용하여 removeApplicationFont() 함수를 통해 글꼴을 다시 제거하거나, 해당 글꼴에 포함된 글꼴군 이름 목록을 가져올 수 있습니다.

글꼴을 불러올 수 없는 경우 이 함수는 -1을 반환합니다.

현재는 트루타입(TrueType) 글꼴, 트루타입 글꼴 모음 및 오픈타입(OpenType) 글꼴만 지원됩니다.

addApplicationFontFromData(), applicationFontFamilies() 및 removeApplicationFont()도 참조하십시오 .

[static] int QFontDatabase::addApplicationFontFromData(const QByteArray &fontData)

fontData 로 지정된 바이너리 데이터에서 글꼴을 불러와 애플리케이션에서 사용할 수 있도록 합니다. 반환된 ID는 removeApplicationFont()를 통해 글꼴을 다시 제거하거나, 글꼴에 포함된 글꼴군 이름 목록을 가져오는 데 사용할 수 있습니다.

글꼴을 불러올 수 없는 경우 이 함수는 -1을 반환합니다.

현재는 트루타입(TrueType) 글꼴, 트루타입 글꼴 모음 및 오픈타입(OpenType) 글꼴만 지원됩니다.

addApplicationFont(), applicationFontFamilies() 및 removeApplicationFont()도 참조하십시오 .

[static, since 6.9] QStringList QFontDatabase::applicationEmojiFontFamilies()

애플리케이션에서 정의한 이모지 글꼴 패밀리 목록을 반환합니다.

이 함수는 Qt 6.9에서 도입되었습니다.

addApplicationEmojiFontFamily(), removeApplicationEmojiFontFamily(), setApplicationEmojiFontFamilies(), applicationFallbackFontFamilies()도 참조하십시오 .

[static, since 6.8] QStringList QFontDatabase::applicationFallbackFontFamilies(QChar::Script script)

addApplicationFallbackFontFamily() 함수를 통해 이전에 ` script `에 추가된, 애플리케이션에서 정의한 대체 글꼴 패밀리 목록을 반환합니다.

이 함수는 Qt 6.8에서 도입되었습니다.

setApplicationFallbackFontFamilies(), addApplicationFallbackFontFamily() 및 removeApplicationFallbackFontFamily()도 참조하십시오 .

[static] QStringList QFontDatabase::applicationFontFamilies(int id)

id 로 식별되는 지정된 애플리케이션 글꼴에 대한 글꼴 패밀리 목록을 반환합니다.

addApplicationFont() 및 addApplicationFontFromData()도 참조하십시오 .

[static] bool QFontDatabase::bold(const QString &family, const QString &style)

가족이 family 이고 스타일이 style 인 글꼴이 굵은체(bold)인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

italic() 및 weight()도 참조하십시오 .

[static] QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = Any)

writingSystem 를 지원하는 사용 가능한 글꼴 패밀리의 정렬된 목록을 반환합니다.

한 글꼴 패밀리가 여러 폰트 제작사에서 제공되는 경우, 해당 글꼴의 반환된 이름은 "패밀리 [제작사]" 형식을 따릅니다. 예: "Times [Adobe]", "Times [Cronyx]", "Palatino".

writingSystems()도 참조하십시오 .

[static] QFont QFontDatabase::font(const QString &family, const QString &style, int pointSize)

family 의 서체 계열, style 의 스타일, pointSize 의 포인트 크기를 가진 QFont 객체를 반환합니다. 일치하는 글꼴을 생성할 수 없는 경우, 애플리케이션의 기본 글꼴을 사용하는 QFont 객체가 반환됩니다.

[static] bool QFontDatabase::isBitmapScalable(const QString &family, const QString &style = QString())

글꼴 패밀리가 family 이고 스타일이 style 인 글꼴이 확장 가능한 비트맵 글꼴인 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다. 비트맵 글꼴을 확대·축소하면 글꼴의 픽셀이 함께 확대·축소되기 때문에 대개 보기 흉하고 읽기 힘든 결과가 나옵니다. 비트맵 글꼴을 확대·축소해야 하는 경우, smoothSizes() 함수가 반환하는 고정 크기 중 하나로 조정하는 것이 좋습니다.

isScalable() 및 isSmoothlyScalable()도 참조하십시오 .

[static] bool QFontDatabase::isFixedPitch(const QString &family, const QString &style = QString())

가족(family)이 family 이고 스타일(style)이 style 인 글꼴이 고정폭 글꼴인 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.

[static] bool QFontDatabase::isPrivateFamily(const QString &family)

family 글꼴 패밀리가 비공개일 때만 true 를 반환합니다.

예를 들어, macOS 및 iOS에서는 시스템 UI 글꼴에 사용자가 접근할 수 없기 때문에 이러한 현상이 발생합니다. 참고로, ` QFontDatabase::families()`는 비공개 글꼴을 포함하여 모든 글꼴 패밀리를 반환합니다. 글꼴 선택 컨트롤을 개발할 때 비공개 글꼴을 숨기려면 이 함수를 사용해야 합니다.

families()도 참조하십시오 .

[static] bool QFontDatabase::isScalable(const QString &family, const QString &style = QString())

가족이 family 이고 스타일이 style 인 글꼴이 확장 가능한 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.

isBitmapScalable() 및 isSmoothlyScalable()도 참조하십시오 .

[static] bool QFontDatabase::isSmoothlyScalable(const QString &family, const QString &style = QString())

글꼴 패밀리 family 과 스타일 style 을 가진 글꼴이 부드럽게 크기 조절이 가능한 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다. 이 함수가 true 을 반환하면, 해당 글꼴을 어떤 크기로든 안전하게 크기 조절할 수 있으며, 결과물은 항상 보기 좋게 표시됩니다.

isScalable() 및 isBitmapScalable()도 참조하십시오 .

[static] bool QFontDatabase::italic(const QString &family, const QString &style)

가족이 family 이고 스타일이 style 인 글꼴이 이탤릭체인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

weight() 및 bold()도 참조하십시오 .

[static] QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())

family 패밀리와 styleName 스타일을 가진 글꼴에서 사용할 수 있는 포인트 크기 목록을 반환합니다. 이 목록은 비어 있을 수도 있습니다.

smoothSizes() 및 standardSizes()도 참조하십시오 .

[static] bool QFontDatabase::removeAllApplicationFonts()

addApplicationFont() 및 addApplicationFontFromData()를 사용하여 이전에 추가된 모든 애플리케이션 로컬 글꼴을 제거합니다.

글꼴 제거에 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

removeApplicationFont(), addApplicationFont() 및 addApplicationFontFromData()도 참조하십시오 .

[static, since 6.9] bool QFontDatabase::removeApplicationEmojiFontFamily(const QString &familyName)

이전에 addApplicationEmojiFontFamily()를 통해 추가된 경우, 애플리케이션에서 정의한 이모지 글꼴 목록에서 familyName 를 제거합니다.

가족 이름이 목록에 포함되어 있으면 true를, 포함되어 있지 않으면 false를 반환합니다.

이 함수는 Qt 6.9에서 도입되었습니다.

addApplicationEmojiFontFamily(), setApplicationEmojiFontFamilies(), applicationEmojiFontFamilies() 및 removeApplicationFallbackFontFamily()도 참조하십시오 .

[static, since 6.8] bool QFontDatabase::removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)

이전 addApplicationFallbackFontFamily() 함수를 통해 추가된 경우, script 에 대한 애플리케이션 정의 대체 글꼴 목록에서 familyName 을 제거합니다.

글꼴 패밀리 이름이 목록에 포함되어 있으면 true를, 포함되어 있지 않으면 false를 반환합니다.

이 함수는 Qt 6.8에서 도입되었습니다.

addApplicationFallbackFontFamily(), setApplicationFallbackFontFamilies() 및 applicationFallbackFontFamilies()도 참조하십시오 .

[static] bool QFontDatabase::removeApplicationFont(int id)

id 로 식별되는 이전에 로드된 애플리케이션 글꼴을 제거합니다. 글꼴 제거에 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

removeAllApplicationFonts(), addApplicationFont(), addApplicationFontFromData()도 참조하십시오 .

[static, since 6.9] void QFontDatabase::setApplicationEmojiFontFamilies(const QStringList &familyNames)

애플리케이션에서 정의한 이모지 글꼴 목록을 ` familyNames`로 설정합니다.

이 함수는 Qt 6.9에서 도입되었습니다.

addApplicationEmojiFontFamily(), removeApplicationEmojiFontFamily(), applicationEmojiFontFamilies() 및 setApplicationFallbackFontFamilies()도 참조하십시오 .

[static, since 6.8] void QFontDatabase::setApplicationFallbackFontFamilies(QChar::Script script, const QStringList &familyNames)

script 에 대한 애플리케이션 정의 대체 글꼴 목록을 familyNames 로 설정합니다.

Qt가 ` script `에서 현재 글꼴이 지원하지 않는 문자를 발견하면, 일치하는 글꼴을 찾을 때까지 ` familyNames`에 있는 글꼴 패밀리를 첫 번째부터 마지막 순서대로 확인합니다. 자세한 내용은 ` addApplicationFallbackFontFamily()`를 참조하십시오.

이 함수는 script 에 대한 애플리케이션 정의 대체 글꼴의 현재 목록을 덮어씁니다.

이 함수는 Qt 6.8에서 도입되었습니다.

addApplicationFallbackFontFamily(), removeApplicationFallbackFontFamily() 및 applicationFallbackFontFamilies()도 참조하십시오 .

[static] QList<int> QFontDatabase::smoothSizes(const QString &family, const QString &styleName)

family 폰트 패밀리와 styleName 스타일을 가진 폰트 중에서 시각적으로 보기 좋은 포인트 크기를 반환합니다. 이 목록은 비어 있을 수도 있습니다. 비확장형 폰트 및 비트맵 확장형 폰트의 경우, 이 함수는 pointSizes() 함수와 동일합니다.

pointSizes() 및 standardSizes()도 참조하십시오 .

[static] QList<int> QFontDatabase::standardSizes()

표준 글꼴 크기 목록을 반환합니다.

smoothSizes() 및 pointSizes()도 참조하십시오 .

[static] QString QFontDatabase::styleString(const QFont &font)

font 의 서식을 설명하는 문자열을 반환합니다. 예를 들어, "굵은 이탤릭체", "굵은체", "이탤릭체" 또는 "일반" 등이 있습니다. 빈 문자열이 반환될 수도 있습니다.

[static] QString QFontDatabase::styleString(const QFontInfo &fontInfo)

fontInfo 의 서식을 설명하는 문자열을 반환합니다. 예를 들어, "굵은 이탤릭체", "굵은체", "이탤릭체" 또는 "일반" 등이 있습니다. 빈 문자열이 반환될 수도 있습니다.

[static] QStringList QFontDatabase::styles(const QString &family)

family 글꼴 패밀리에 사용할 수 있는 스타일 목록을 반환합니다. 스타일의 예시로는 "Light", "Light Italic", "Bold", "Oblique", "Demi" 등이 있습니다. 이 목록은 비어 있을 수도 있습니다.

families()도 참조하십시오 .

[static] QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)

type 의 특정 대소문자 구분에 가장 적합한 글꼴을 반환하여, 시스템의 디자인 및 사용감과 자연스럽게 조화를 이룰 수 있도록 합니다.

QGuiApplication::font()도 참조하십시오 .

[static] int QFontDatabase::weight(const QString &family, const QString &style)

family 라는 글꼴 패밀리와 style 라는 스타일을 가진 글꼴의 굵기를 반환합니다. 해당 패밀리와 스타일의 조합이 없는 경우 -1을 반환합니다.

italic() 및 bold()도 참조하십시오 .

[static] QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)

writingSystem 의 이름을 반환합니다(예: 대화 상자에서 사용자에게 표시하기 위해).

[static] QString QFontDatabase::writingSystemSample(QFontDatabase::WritingSystem writingSystem)

writingSystem 에서 가져온 샘플 문자가 포함된 문자열을 반환합니다.

[static] QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems()

사용 가능한 문자 체계의 정렬된 목록을 반환합니다. 이 목록은 시스템에 설치된 모든 글꼴에 대한 정보를 바탕으로 생성됩니다.

families()도 참조하십시오 .

[static] QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems(const QString &family)

주어진 글꼴 family 이 지원하는 문자 체계를 정렬된 목록으로 반환합니다.

families()도 참조하십시오 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.