TextStyle - Стиль текста

class axipy.TextStyle

Базовые классы: Style

Стиль текстового объекта.

Возможные значения параметра style

Значение

Наименование

0

Обычный

1

Жирный

2

Курсив

4

Подчеркнутый

16

Контур (только для Macintosh)

32

Тень

256

Кайма

512

Капитель

1024

Разрядка

Пример.
style = TextStyle("Droid Sans", 24)
style.fontname = 'Adobe Helvetica'
style.color = Qt.red
style.bold = True
style.italic = True
style.shadow = True
style.spacing = True
style.capital = True
style.alignment = TextAlignment.Center
print(style.size)
style.size = 22
style.callout = TextCallout.Arrow
arrow_style = LineStyle(2, Qt.red)
style.callout_style = arrow_style
print(style.to_mapinfo())
'''
>>> Font ("Adobe Helvetica", 1571, 22, 16711680) Label Line Arrow Line (1, 2, 16711680)
'''

Примечание

При назначении стиля для текста необходимо помнить, что его параметры и параметры геометрии axipy.mi.Text взаимозависимы.

Конструктор класса:

__init__(fontname, size[, style, forecolor, ...])

Конструктор класса.

Классовые методы:

for_geometry(geom)

Возвращает стиль по умолчанию для переданного объекта.

from_mapinfo(mapbasic_string)

Получает стиль из строки формата MapBasic.

Свойства:

alignment

Выравнивание текста.

bg_color

Цвет фона текста

bg_type

Тип отрисовки фона текста.

bold

Жирный текст.

callout

Тип выноски.

callout_style

Стиль выноски.

color

Цвет текста

fontname

Наименование шрифта

italic

Курсив текста.

shadow

Тень.

size

Базовый размер шрифта в пунктах.

spacing

Разрядка

Методы:

clone()

Создаёт копию объекта стиля

draw(geometry, painter)

Рисует геометрический объект с текущим стилем в произвольном контексте вывода.

to_mapinfo()

Возвращает строковое представление в формате MapBasic.

__init__(fontname: str, size: int, style: int = 0, forecolor: QColor = Qt.black, backcolor: QColor = Qt.transparent)

Конструктор класса.

Параметры:
  • fontname – Наименование шрифта.

  • size – Размер шрифта в пунктах. Может принимать значение 0 для подписей в окне карты, так как они являются атрибутами карты и их размер определяется динамически.

  • style – Дополнительные параметры стиля. Подробнее см. в таблице ниже. Стоит заметить, что если оставить значение, равным 0, то необходимые свойства можно установить позже через соответствующие свойства.

  • forecolor – Цвет шрифта.

  • backcolor – Цвет заднего фона, если он задан.

property alignment: TextAlignment

Выравнивание текста.

property bg_color: QColor

Цвет фона текста

property bg_type: TextBackgroundType

Тип отрисовки фона текста.

property bold: bool

Жирный текст.

property callout: TextCallout

Тип выноски.

property callout_style: LineStyle

Стиль выноски.

clone() Style

Создаёт копию объекта стиля

property color: QColor

Цвет текста

draw(geometry: Geometry, painter: QPainter)

Рисует геометрический объект с текущим стилем в произвольном контексте вывода. Это может быть востребовано при желании отрисовать геометрию со стилем на форме или диалоге.

Параметры:
  • geometry – Геометрия. Должна соответствовать стилю. Т.е. если объект полигон, а стиль для рисования точечных объектов, то ничего нарисовано не будет.

  • painter – Контекст вывода.

Пример отрисовки в растре и сохранение результата в файле.
image = QImage(100, 100, QImage.Format_ARGB32_Premultiplied)
image.fill(Qt.white)
painter = QPainter(image)
point = Point(50, 50)
style = PointStyle.create_mi_font(42, Qt.red, 24)
style.draw(point, painter)
image.save(filename)
property fontname: str

Наименование шрифта

classmethod for_geometry(geom: Geometry) Style

Возвращает стиль по умолчанию для переданного объекта.

Параметры:

geom – Геометрический объект, для которого необходимо получить соответствующий ему стиль.

classmethod from_mapinfo(mapbasic_string: str) Optional[Style]

Получает стиль из строки формата MapBasic.

Параметры:

mapbasic_string – Строка в формате MapBasic.

style = Style.from_mapinfo("Pen (1, 2, 0) Brush (8, 255)")
property italic: bool

Курсив текста.

property shadow: bool

Тень.

property size: float

Базовый размер шрифта в пунктах. Следует отметить, что точный размер шрифта высчитывается исходя из контекста рисования (карта или отчет).

property spacing: bool

Разрядка

to_mapinfo() str

Возвращает строковое представление в формате MapBasic.

print(style.to_mapinfo())
'''
>>> Pen (1, 2, 0) Brush (8, 255)
'''