# 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.Text` взаимозависимы.

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

  `__init__`(fontname, size[, style, forecolor, ...]) | Конструктор класса.

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

  `for_geometry`(geom) | Возвращает стиль по умолчанию из настроек для переданного объекта.
  `for_geometry_type`(geometry_type) | Возвращает стиль по умолчанию для переданного типа геометрии.
  `from_mapinfo`(mapbasic_string) | Получает стиль из строки формата MapBasic.

  Свойства:

  `alignment` | Устанавливает или возвращает выравнивание текста.
  `bg_color` | Устанавливает или возвращает цвет фона текста.
  `bg_type` | Устанавливает или возвращает тип отрисовки фона текста.
  `bold` | Устанавливает или возвращает признак 'Жирный текст'.
  `callout` | Устанавливает или возвращает тип выноски.
  `callout_style` | Устанавливает или возвращает стиль выноски.
  `capital` | Устанавливает или возвращает признак 'Все заглавные'.
  `color` | Устанавливает или возвращает цвет текста.
  `fontname` | Устанавливает или возвращает наименование шрифта.
  `italic` | Устанавливает или возвращает признак 'Курсив текста'.
  `shadow` | Устанавливает или возвращает признак 'Тень'.
  `size` | Устанавливает или возвращает базовый размер шрифта в пунктах.
  `spacing` | Устанавливает или возвращает признак 'Разрядка'.
  `underline` | Устанавливает или возвращает признак 'Подчеркивание'.

  Методы:

  `clone`() | Создаёт копию объекта стиля.
  `draw`(geometry, painter) | Рисует геометрический объект с текущим стилем в произвольном контексте вывода.
  `to_mapinfo`() | Возвращает строковое представление в формате MapBasic.

  Специальные методы:

  `__eq__`(other) | Оператор равенства (==).
  `__repr__`() | Официальное строковое представление объекта при вызове `repr()`.
  `__str__`() | Неформальное строковое представление объекта при вызове `str` или `print()`.

  __eq__(other: object) → bool

    Оператор равенства (==).

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

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

    Параметры:

      - fontname – Наименование шрифта.

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

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

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

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

  __repr__() → str

    Официальное строковое представление объекта при вызове `repr()`.

  __str__() → str

    Неформальное строковое представление объекта при вызове `str` или `print()`.

  property alignment: TextAlignment

    Устанавливает или возвращает выравнивание текста.

  property bg_color: QColor

    Устанавливает или возвращает цвет фона текста.

  property bg_type: TextBackgroundType

    Устанавливает или возвращает тип отрисовки фона текста.

  property bold: bool

    Устанавливает или возвращает признак „Жирный текст“.

  property callout: TextCallout

    Устанавливает или возвращает тип выноски.

  property callout_style: LineStyle

    Устанавливает или возвращает стиль выноски.

  property capital: bool

    Устанавливает или возвращает признак „Все заглавные“.

  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 for_geometry_type(geometry_type: StyleGeometryType) → Style

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

    Параметры:

      geometry_type – Тип геометрического объекта, для которого необходимо получить стиль.

  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)
        '''

  property underline: bool

    Устанавливает или возвращает признак „Подчеркивание“.