На этом шаге мы рассмотрим создание такого окна.
Окно для выбора шрифта реализуется с помощью статического метода 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. Окно для выбора шрифта
На следующем шаге мы рассмотрим окно для вывода сообщения об ошибке.