Шаг 264.
Библиотека PyQt5.
Диалоговые окна. Окно для выбора шрифта

    На этом шаге мы рассмотрим создание такого окна.

    Окно для выбора шрифта реализуется с помощью статического метода getFont() класса QFontDialog. Форматы метода:

  getFont(<QFont>[, parent=None])
  getFont(<QFont>[, parent=None][, caption=""][, options=0])

    Параметр <QFont> задает начальный шрифт. В параметре parent указывается ссылка на родительское окно или значение None. Параметр caption позволяет указать заголовок окна. В параметре options могут быть указаны следующие атрибуты класса QFontDialog или их комбинация:

    Метод возвращает кортеж из двух элементов: (<QFont>, <Статус>). Если второй элемент содержит значение True, то первый элемент будет содержать экземпляр класса QFont с выбранным шрифтом. Пример:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets, QtGui
import sys


def on_clicked():
    (font, ok) = QtWidgets.QFontDialog.getFont(QtGui.QFont("Tahoma", 16), 
           parent=window, caption="Окно выбора шрифта")
    if ok:
        print(font.family(), font.pointSize(), font.weight(), 
               font.italic(), font.underline())
        # Задание новго стиля для поля
        style = 'QLineEdit { font-family: ' + font.family() + '; font-size: ' + 
             str(font.pointSize()) + '; font-weight: ' + 
             str(font.weight()) + ';'
        if font.italic():
            style += 'font-style: italic; '
        if font.underline():
            style += 'text-decoration: underline;'
        style += ' }'
        # Установка нового стиля
        lineEdit1.setStyleSheet(style)

app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()          # Родительский компонент - окно
window.setWindowTitle("Использование окна выбора шрифта")
# Назначаем обработчиками функции
button1 = QtWidgets.QPushButton("Выбор шрифта")
lineEdit1 = QtWidgets.QLineEdit()
grid = QtWidgets.QGridLayout()        # Создаем сетку
grid.addWidget(button1, 0, 0)         # Добавляем компоненты
grid.addWidget(lineEdit1, 0, 1)
button1.clicked.connect(on_clicked)
window.setLayout(grid)
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.

    Результат выполнения этого кода показан на рисунке 1.


Рис.1. Окно для выбора шрифта

    На следующем шаге мы рассмотрим окно для вывода сообщения об ошибке.




Предыдущий шаг Содержание Следующий шаг