Класс QFontDialog
Класс QFontDialog предоставляет диалоговое окно для выбора шрифта. Подробнее...
| Заголовок: | #include <QFontDialog> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QDialog |
Типы публичного доступа
| перечисление | FontDialogOption { НетКнопок, НеИспользоватьНативныйДиалог, МасштабируемыеШрифты, НеМасштабируемыеШрифты, ШрифтыСПостояннымКеглем, ШрифтыСПеременнымКеглем } |
| флаги | FontDialogOptions |
Свойства
- currentFont : QFont
- options : FontDialogOptions
Функции публичного доступа
| QFontDialog(const QFont &initial, QWidget *parent = nullptr) | |
| QFontDialog(QWidget *parent = nullptr) | |
| QFont | currentFont() const |
| void | open(QObject *receiver, const char *member) |
| QFontDialog::FontDialogOptions | options() const |
| QFont | selectedFont() const |
| void | setCurrentFont(const QFont &font) |
| void | setOption(QFontDialog::FontDialogOption option, bool on = true) |
| void | setOptions(QFontDialog::FontDialogOptions options) |
| bool | testOption(QFontDialog::FontDialogOption option) const |
Переопределённые функции публичного доступа
| виртуальный void | setVisible(bool visible) override |
Сигналы
| void | currentFontChanged(const QFont &font) |
| void | fontSelected(const QFont &font) |
Статические публичные члены
| QFont | getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions()) |
| QFont | getFont(bool *ok, QWidget *parent = nullptr) |
Переопределённые защищённые функции
| виртуальный void | changeEvent(QEvent *e) override |
| виртуальный void | done(int result) override |
Подробное описание
Диалоговое окно шрифта создаётся с помощью одной из статических функций getFont().
Примеры:
bool ok;
QFont font = QFontDialog::getFont(
&ok, QFont("Helvetica [Cronyx]", 10), this);
if (ok) {
// the user clicked OK and font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the initial
// value, in this case Helvetica [Cronyx], 10
} Диалоговое окно также можно использовать для непосредственной установки шрифта виджета:
myWidget.setFont(QFontDialog::getFont(0, myWidget.font()));
Если пользователь нажимает «ОК», выбранный шрифт будет использован для myWidget, а если «Отмена», — исходный шрифт.
См. также QFont, QFontInfo, QFontMetrics, QColorDialog, QFileDialog и Пример стандартных диалоговых окон.
Документация по типам членов
перечисление QFontDialog::FontDialogOptionфлаги QFontDialog::FontDialogOptions
Это перечисление определяет различные параметры, влияющие на вид диалогового окна выбора шрифта.
Например, оно позволяет указать, какие типы шрифтов должны отображаться. Если не указано ничего, будут отображаться все доступные шрифты.
Обратите внимание, что параметры фильтрации шрифтов могут не поддерживаться на некоторых платформах (например, macOS). Они всегда поддерживаются в не-нативном диалоговом окне (используемом в Windows или Linux).
| Константа | Значение | Описание |
|---|---|---|
QFontDialog::NoButtons |
0x00000001 |
Не отображать кнопки «ОК» и «Отмена». (Полезно для «динамических диалогов».) |
QFontDialog::DontUseNativeDialog |
0x00000002 |
Использовать стандартное диалоговое окно выбора шрифта Qt на macOS вместо нативного диалога Apple. |
QFontDialog::ScalableFonts |
0x00000004 |
Отобразить масштабируемые шрифты |
QFontDialog::NonScalableFonts |
0x00000008 |
Отобразить не масштабируемые шрифты |
QFontDialog::MonospacedFonts |
0x00000010 |
Отобразить шрифты с постоянным кеглем |
QFontDialog::ProportionalFonts |
0x00000020 |
Отобразить шрифты с переменным кеглем |
Тип FontDialogOptions — это синоним для QFlags<FontDialogOption>. Он хранит логическое ИЛИ сочетание значений FontDialogOption.
См. также options, setOption() и testOption().
Документация по свойствам
currentFont : QFont
Это свойство содержит текущий шрифт диалогового окна.
Функции доступа:
| QFont | currentFont() const |
| void | setCurrentFont(const QFont &font) |
Сигнал оповещения:
| void | currentFontChanged(const QFont &font) |
options : FontDialogOptions
Это свойство содержит различные параметры, влияющие на вид диалогового окна.
По умолчанию все параметры отключены.
Параметры должны быть установлены до показа диалогового окна. Установка их во время отображения диалогового окна не гарантирует немедленного эффекта (в зависимости от параметра и платформы).
Функции доступа:
| QFontDialog::FontDialogOptions | options() const |
| void | setOptions(QFontDialog::FontDialogOptions options) |
См. также setOption() и testOption().
Документация по функциям членов
QFontDialog::QFontDialog(const QFont &initial, QWidget *parent = nullptr)
Конструктор стандартного диалогового окна выбора шрифта с заданным parent и указанным initial шрифтом.
QFontDialog::QFontDialog(QWidget *parent = nullptr)
Конструктор стандартного диалогового окна выбора шрифта.
Используйте setCurrentFont(), чтобы установить начальные атрибуты шрифта.
Параметр parent передаётся конструктору QDialog.
См. также getFont().
[signal] void QFontDialog::currentFontChanged(const QFont &font)
Этот сигнал испускается при изменении текущего шрифта. Новый шрифт указан в font.
Сигнал испускается во время выбора шрифта пользователем. В конечном итоге выбранный шрифт может отличаться от текущего выбранного шрифта.
Примечание: Сигнал-уведомление для свойства currentFont.
См. также currentFont, fontSelected() и selectedFont().
[signal] void QFontDialog::fontSelected(const QFont &font)
Этот сигнал испускается, когда шрифт выбран. Выбранный шрифт указан в font.
Сигнал испускается только тогда, когда пользователь выбрал окончательный шрифт. Он не испускается, пока пользователь изменяет текущий шрифт в диалоговом окне шрифтов.
См. также selectedFont(), currentFontChanged() и currentFont.
[override virtual protected] void QFontDialog::changeEvent(QEvent *e)
Переопределяет: QWidget::changeEvent(QEvent *event).
QFont QFontDialog::currentFont() const
Возвращает текущий шрифт.
Примечание: Функция-получатель для свойства currentFont.
См. также setCurrentFont() и selectedFont().
[override virtual protected] void QFontDialog::done(int result)
Переопределяет: QDialog::done(int r).
Закрывает диалоговое окно и устанавливает его код результата в result. Если это диалоговое окно показано с помощью exec(), done() завершает локальный цикл событий и exec() возвращает result.
См. также QDialog::done().
[static] QFont QFontDialog::getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions())
Выполняет модальное диалоговое окно выбора шрифта и возвращает шрифт.
Если пользователь нажмёт ОК, возвращается выбранный шрифт. Если пользователь нажмёт Отмена, возвращается шрифт initial.
Диалоговое окно создаётся с заданным parent и параметрами, указанными в options. title отображается в качестве заголовка окна диалогового окна, а initial — как шрифт, выбранный по умолчанию. Если параметр ok не равен нулю, его значение устанавливается в true, если пользователь нажимает ОК, и в false, если пользователь нажимает Отмена.
Примеры:
bool ok;
QFont font = QFontDialog::getFont(&ok, QFont("Times", 12), this);
if (ok) {
// font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the initial
// value, in this case Times, 12.
} Диалоговое окно также можно использовать для непосредственной установки шрифта виджета:
myWidget.setFont(QFontDialog::getFont(0, myWidget.font()));
В этом примере, если пользователь нажмёт ОК, будет использован выбранный им шрифт, а если Отмена — исходный шрифт.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFontDialog.
[static] QFont QFontDialog::getFont(bool *ok, QWidget *parent = nullptr)
Это перегруженная функция.
Выполняет модальное диалоговое окно выбора шрифта и возвращает шрифт.
Если пользователь нажмёт ОК, возвращается выбранный шрифт. Если пользователь нажмёт Отмена, возвращается шрифт по умолчанию Qt.
Диалоговое окно создаётся с заданным parent. Если параметр ok не равен нулю, его значение устанавливается в true, если пользователь нажимает ОК, и в false, если пользователь нажимает Отмена.
Пример:
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
if (ok) {
// font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the default
// application font, QApplication::font()
} Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QFontDialog.
void QFontDialog::open(QObject *receiver, const char *member)
Открывает диалоговое окно и подключает его сигнал fontSelected() к слоту, указанному receiver и member.
Сигнал будет отключён от слота при закрытии диалогового окна.
QFont QFontDialog::selectedFont() const
Возвращает шрифт, выбранный пользователем, нажав кнопку ОК или эквивалент.
Примечание: Этот шрифт не всегда совпадает со шрифтом, содержащимся в свойстве currentFont, так как пользователь может выбирать разные шрифты, прежде чем окончательно выбрать тот, который будет использоваться.
void QFontDialog::setCurrentFont(const QFont &font)
Устанавливает шрифт, выделенный в QFontDialog, на заданный font.
Примечание: Функция-установщик для свойства currentFont.
См. также currentFont() и selectedFont().
void QFontDialog::setOption(QFontDialog::FontDialogOption option, bool on = true)
Устанавливает заданный option в состояние включения, если on равно true; в противном случае, отключает заданный option.
См. также параметры и testOption().
[override virtual] void QFontDialog::setVisible(bool visible)
Переопределяет: QDialog::setVisible(bool visible).
bool QFontDialog::testOption(QFontDialog::FontDialogOption option) const
Возвращает true если заданный option включён; в противном случае возвращает false.
См. также параметры и setOption().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qfontdialog.html