QFontComboBox Class

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

Header: #include <QFontComboBox>
qmake: QT += widgets
Since: Qt 4.2
Inherits: QComboBox

This class was introduced in Qt 4.2.

Public Types

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


Public Functions

QFontComboBox(QWidget *parent = nullptr)
virtual ~QFontComboBox()
QFont currentFont() const
QFontComboBox::FontFilters fontFilters() const
void setFontFilters(QFontComboBox::FontFilters filters)
void setWritingSystem(QFontDatabase::WritingSystem)
QFontDatabase::WritingSystem writingSystem() const

Reimplemented Public Functions

virtual QSize sizeHint() const override

Public Slots

void setCurrentFont(const QFont &f)


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.

Screenshot of QFontComboBox on Windows Vista

See also QComboBox, QFont, QFontInfo, QFontMetrics, QFontDatabase, and Character Map Example.

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.

QFontComboBox::AllFonts0Show all fonts
QFontComboBox::ScalableFonts0x1Show scalable fonts
QFontComboBox::NonScalableFonts0x2Show non scalable fonts
QFontComboBox::MonospacedFonts0x4Show monospaced fonts
QFontComboBox::ProportionalFonts0x8Show 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

QFontComboBox::QFontComboBox(QWidget *parent = nullptr)

Constructs a font combobox with the given parent.

[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.

[virtual] QFontComboBox::~QFontComboBox()

Destroys the combobox.

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

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

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

Reimplements: QComboBox::sizeHint() const.