На этом шаге мы рассмотрим вопросы, связанные с получением информации о шрифтах и их стилях.
Получить список всех доступных шрифтов позволяет метод families() класса QFontDatabase. Метод возвращает список строк. Пример:
print(QtGui.QFontDatabase().families())
Чтобы получить список доступных стилей для указанного шрифта, следует воспользоваться методом styles(<Название шрифта>) класса QFontDatabase:
print(QtGui.QFontDatabase().styles("Tahoma")) ['Normal', 'Italic', 'Bold', 'Bold Italic']
Получить допустимые размеры для указанного стиля можно с помощью метода smoothSizes(<Название шрифта>, <Стиль>) класса QFontDatabase:
print(QtGui.QFontDatabase().smoothSizes("Tahoma", "Normal")) [6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72]
Очень часто необходимо произвести выравнивание выводимого текста внутри некоторой области. Чтобы это сделать, нужно знать размеры области, в которую вписан текст. Получить эти значения позволяют следующие методы класса QFontMetrics:
Пример получения размеров области:
font = QtGui.QFont("Tahoma", 16) fm = QtGui.QFontMetrics(font) print(fm.width("Строка")) # 67 print(fm.height()) # 25 print(fm.boundingRect("Строка")) # PyQt5.QtCore.QRect(0, -21, 65, 25)
Обратите внимание, что значения, возвращаемые методами width() и QRect.width(), различаются.
На следующем шаге мы рассмотрим класс QPainter.