- Qt 6.7
- Qt Widgets
- C++ Classes
- QFontComboBox
- Qt 6.7.2 Reference Documentation

# QFontComboBox Class

The QFontComboBox widget is a combobox that lets the user select a font family. More...

Header: | #include <QFontComboBox>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: | QT += widgets
Inherits: | QComboBox

- List of all members, including inherited members

## Public Types

enum | FontFilter { AllFonts, ScalableFonts, NonScalableFonts, MonospacedFonts, ProportionalFonts }
flags | FontFilters

## Properties

- currentFont : QFont
- fontFilters : FontFilters
- writingSystem : QFontDatabase::WritingSystem

## Public Functions

| QFontComboBox(QWidget *parent = nullptr)
virtual | ~QFontComboBox()
QFont | currentFont() const
`(since 6.3)` std::optional<QFont> | displayFont(const QString &fontFamily) const
QFontComboBox::FontFilters | fontFilters() const
`(since 6.3)` QString | sampleTextForFont(const QString &fontFamily) const
`(since 6.3)` QString | sampleTextForSystem(QFontDatabase::WritingSystem writingSystem) const
`(since 6.3)` void | setDisplayFont(const QString &fontFamily, const QFont &font)
void | setFontFilters(QFontComboBox::FontFilters filters)
`(since 6.3)` void | setSampleTextForFont(const QString &fontFamily, const QString &sampleText)
`(since 6.3)` void | setSampleTextForSystem(QFontDatabase::WritingSystem writingSystem, const QString &sampleText)
void | setWritingSystem(QFontDatabase::WritingSystem)
QFontDatabase::WritingSystem | writingSystem() const

## Reimplemented Public Functions

virtual QSize | sizeHint() const override

## Public Slots

void | setCurrentFont(const QFont &f)

## Signals

void | currentFontChanged(const QFont &font)

## Reimplemented Protected Functions

virtual bool | event(QEvent *e) override

## Detailed Description

The combobox is populated with an alphabetized list of font family names, such as Arial, Helvetica, and Times New Roman. Family names are displayed using the actual font when possible. For fonts such as Symbol, where the name is not representable in the font itself, a sample of the font is displayed next to the family name.

QFontComboBox is often used in toolbars, in conjunction with a QComboBox for controlling the font size and two QToolButtons for bold and italic.

When the user selects a new font, the currentFontChanged() signal is emitted in addition to currentIndexChanged().

Call setWritingSystem() to tell QFontComboBox to show only fonts that support a given writing system, and setFontFilters() to filter out certain types of fonts as e.g. non scalable fonts or monospaced fonts.

See also QComboBox, QFont, QFontInfo, QFontMetrics, and QFontDatabase.

## Member Type Documentation

### enum QFontComboBox::FontFilter
flags QFontComboBox::FontFilters

This enum can be used to only show certain types of fonts in the font combo box.

Constant | Value | Description
--- | --- | ---
`QFontComboBox::AllFonts` | `0` | Show all fonts
`QFontComboBox::ScalableFonts` | `0x1` | Show scalable fonts
`QFontComboBox::NonScalableFonts` | `0x2` | Show non scalable fonts
`QFontComboBox::MonospacedFonts` | `0x4` | Show monospaced fonts
`QFontComboBox::ProportionalFonts` | `0x8` | Show proportional fonts

The FontFilters type is a typedef for QFlags<FontFilter>. It stores an OR combination of FontFilter values.

## Property Documentation

### currentFont : QFont

This property holds the currently selected font

Access functions:

QFont | currentFont() const
void | setCurrentFont(const QFont &f)

Notifier signal:

void | currentFontChanged(const QFont &font)

See also currentIndex and currentText.

### fontFilters : FontFilters

This property holds the filter for the combobox

By default, all fonts are listed.

Access functions:

QFontComboBox::FontFilters | fontFilters() const
void | setFontFilters(QFontComboBox::FontFilters filters)

See also writingSystem.

### writingSystem : QFontDatabase::WritingSystem

This property holds the writing system that serves as a filter for the combobox

If script is QFontDatabase::Any (the default), all fonts are listed.

Access functions:

QFontDatabase::WritingSystem | writingSystem() const
void | setWritingSystem(QFontDatabase::WritingSystem)

See also fontFilters.

## Member Function Documentation

### `[explicit]` QFontComboBox::QFontComboBox(QWidget *parent = nullptr)

Constructs a font combobox with the given parent.

### `[virtual noexcept]` QFontComboBox::~QFontComboBox()

Destroys the combobox.

### `[signal]` void QFontComboBox::currentFontChanged(const QFont &font)

This signal is emitted whenever the current font changes, with the new font.

Note: Notifier signal for property currentFont.

See also currentFont.

### `[since 6.3]` std::optional<QFont> QFontComboBox::displayFont(const QString &fontFamily) const

Returns the font (if set) to be used to display a given fontFamily (when the combo is open).

This function was introduced in Qt 6.3.

See also setDisplayFont().

### `[override virtual protected]` bool QFontComboBox::event(QEvent *e)

Reimplements: QComboBox::event(QEvent *event).

### `[since 6.3]` QString QFontComboBox::sampleTextForFont(const QString &fontFamily) const

Returns the sample text to show after the font name (when the combo is open) for a given fontFamily.

This function was introduced in Qt 6.3.

See also setSampleTextForFont().

### `[since 6.3]` QString QFontComboBox::sampleTextForSystem(QFontDatabase::WritingSystem writingSystem) const

Returns the sample text to show after the font name (when the combo is open) for a given writingSystem.

This function was introduced in Qt 6.3.

See also setSampleTextForSystem().

### `[since 6.3]` void QFontComboBox::setDisplayFont(const QString &fontFamily, const QFont &font)

Sets the font to be used to display a given fontFamily (when the combo is open).

This function was introduced in Qt 6.3.

See also displayFont().

### `[since 6.3]` void QFontComboBox::setSampleTextForFont(const QString &fontFamily, const QString &sampleText)

Sets the sampleText to show after the font name (when the combo is open) for a given fontFamily.

The sample text given with this function has priority over the one set with setSampleTextForSystem().

This function was introduced in Qt 6.3.

See also sampleTextForFont().

### `[since 6.3]` void QFontComboBox::setSampleTextForSystem(QFontDatabase::WritingSystem writingSystem, const QString &sampleText)

Sets the sampleText to show after the font name (when the combo is open) for a given writingSystem.

The sample text given with setSampleTextForFont() has priority.

This function was introduced in Qt 6.3.

See also sampleTextForSystem().

### `[override virtual]` QSize QFontComboBox::sizeHint() const

Reimplements: QComboBox::sizeHint() const.