9.15. Выбор шрифта

Окно выбора шрифта позволяет пользователю самостоятельно выбрать шрифт для использования в программе. Окно содержит виджет FontSelection, кнопки "ОК" и "Отменить". Кнопка "Применить" также доступна, но по умолчанию спрятана. Окно выбора шрифта позволяет выбрать шрифт из шрифтов, имеющихся в системе (тех, которые видны при использовании xlsfonts).

Рисунок 9.15, “Выбор шрифта” Показывает отображение FontSelectionDialog:

Рисунок 9.15. Выбор шрифта

Font Selection Dialog

Окно содержит набор который предоставляет:

Функция для создания FontSelectionDialog:

  fontseldlg = gtk.FontSelectionDialog(title)

Строка title это строка, которая будет использована для заголовка окна.

Экземпляр FontSelectionDialog содержит несколько полей:

  fontsel
main_vbox
action_area
ok_button
apply_button
cancel_button

Поле fontsel предоставляет ссылку на виджет Font Selection. main_vbox это ссылка на gtk.VBox, содержащий fontsel и action_area окна. Поле action_area это ссылка на gtk.HButtonBox, содержащую кнопки "OK", "Отмена" и "Применить". Поля ok_button, cancel_button и apply_button предоставляют ссылки на кнопки "OK", "Отмена" и "Применить", и используются для подключения сигналов к ним. Ссылка apply_button также может быть использована для метода show(), который покажет её.

Вы можете выбрать, какой шрифт будет отображаться по умолчанию в fontseldlg использованием метода:

  fontseldlg.set_font_name(fontname)

Поле fontname - это имя полностью, либо частично определённого системного шрифта. Например:

  fontseldlg.set_font_name('-adobe-courier-bold-*-*-*-*-120-*-*-*-*-*-*')

частично определяет шрифт.

Имя шрифта выбранного в данный момент можно получить использованием метода:

  font_name = fontseldlg.get_font_name()

Окно выбора шрифта имеет область предварительного просмотра, которая показывает текущий выбранный шрифт. Текст, используемый в этой области, может быть выбран методом:

  fontseldlg.set_preview_text(text)

Текст области предварительного просмотра может быть получен с помощью метода:

  text = fontseldlg.get_preview_text()

Пример calendar.py использует окно выбора шрифта, отображающего календарную информацию. Строки 107-112 определяют callback-функцию, которая возвращает имя шрифта из диалогового окна и использует его для выбора шрифта виджета Календарь. Строки 114-133 определяют метод, который создаёт окно выбора шрифта, настраивает функции для кнопок "ОК", "Отмена" и отображает окно.