# PointFontStyle - Стиль на базе шрифта True Type

class axipy.PointFontStyle

  Базовые классы: `PointStyle`

  Стиль на базе шрифта True Type.

  В системе доступны следующие стили:

  Пример.

      fs = PointFontStyle()
      fs.font_name = 'Axioma MI Oil&Gas'
      fs.has_shadow = True
      fs.rotation = 30
      fs.bold = True
      fs.size = 44
      fs.symbol = 45
      fs.black_border = True
      fs.white_border = True

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

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

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

  `create_mi_compat`([symbol, color, pointSize]) | Создание стиля в виде совместимого с MapInfo 3 `PointCompatStyle`.
  `create_mi_font`([symbol, color, size, ...]) | Создание стиля на базе шрифта True Type `PointFontStyle`.
  `create_mi_picture`(filename[, color, size, ...]) | Создание стиля со ссылкой на растровый файл `PointPictureStyle`.
  `for_geometry`(geom) | Возвращает стиль по умолчанию из настроек для переданного объекта.
  `for_geometry_type`(geometry_type) | Возвращает стиль по умолчанию для переданного типа геометрии.
  `from_mapinfo`(mapbasic_string) | Получает стиль из строки формата MapBasic.

  Свойства:

  `black_border` | Устанавливает или возвращает признак 'Темная окантовка'.
  `bold` | Устанавливает или возвращает признак 'Жирности шрифта'.
  `color` | Устанавливает или возвращает цвет символа.
  `font_name` | Устанавливает или возвращает наименование шрифта.
  `has_shadow` | Устанавливает или возвращает признак 'Тень'.
  `rotation` | Устанавливает или возвращает угол поворота.
  `size` | Устанавливает или возвращает размер символа в пунктах.
  `symbol` | Устанавливает или возвращает номер символа.
  `white_border` | Устанавливает или возвращает признак 'Светлая окантовка'.

  Методы:

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

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

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

  Классы:

  `FontStyleTypes` | Тип шрифта.

  class FontStyleTypes

    Базовые классы: `int`, `Enum`

    Тип шрифта.

    Атрибуты:

    `Plain` | Обычный текст.
    `Bold` | Жирный текст.
    `Outline` | Черная кайма вокруг символа.
    `Shadow` | Тень.
    `Halo` | Белая кайма вокруг символа.

  __eq__(other: object) → bool

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

  __init__(symbol: int = 36, color: Union[QColor, GlobalColor] = Qt.red, size: int = 8, fontname: str = 'Axioma MI MapSymbols', fontstyle: FontStyleTypes = FontStyleTypes.Plain, rotation: float = 0.0)

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

    Параметры:

      - symbol – Целое, имеющее значение 31 или больше, определяющее, какой используется символ из шрифтов TrueType. Для создания невидимого символа используйте значение 31.

      - color – Цвет символа.

      - size – Целое число, размер символа в пунктах от 1 до 48.

      - fontname – Строка с именем шрифта TrueType (например, значение по умолчание „Axioma MI MapSymbols“)

      - fontstyle – Стиль дополнительного оформления, например, курсивный текст. Возможные параметры см. в таблице ниже. Для указания нескольких параметров их суммируют между собой.

      - rotation – Угол поворота символа в градусах.

  __repr__() → str

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

  __str__() → str

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

  property black_border: bool

    Устанавливает или возвращает признак „Темная окантовка“.

  property bold: bool

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

  clone() → Style

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

  property color: QColor

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

  static create_mi_compat(symbol: int = 35, color: Union[QColor, GlobalColor] = Qt.red, pointSize: int = 8) → PointCompatStyle

    Создание стиля в виде совместимого с MapInfo 3 `PointCompatStyle`.

    Параметры:

      - symbol – Номер символа, который будет отображен. Для создания невидимого символа используйте значение 31. Стандартный набор условных знаков включает символы от 31 до 67.

      - color – Цвет символа.

      - pointSize – Целое число, размер символа в пунктах от 1 до 48.

  static create_mi_font(symbol: int = 36, color: Union[QColor, GlobalColor] = Qt.red, size: int = 8, fontname: str = 'Axioma MI MapSymbols', fontstyle: int = 0, rotation: float = 0.0) → PointFontStyle

    Создание стиля на базе шрифта True Type `PointFontStyle`.

    Параметры:

      - symbol – Целое, имеющее значение 31 или больше, определяющее, какой используется символ из шрифтов TrueType. Для создания невидимого символа используйте значение 31.

      - color – Цвет символа

      - size – Целое число, размер символа в пунктах от 1 до 48;

      - fontname – Строка с именем шрифта TrueType (например, значение по умолчание „Axioma MI MapSymbols“)

      - fontstyle – Стиль дополнительного оформления, например, курсивный текст. Возможные параметры см. в таблице ниже. Для указания нескольких параметров их суммируют между собой.

      - rotation – Угол поворота символа в градусах.

  static create_mi_picture(filename: str, color: Union[QColor, GlobalColor] = Qt.black, size: int = 12, customstyle: int = 0) → PointPictureStyle

    Создание стиля со ссылкой на растровый файл `PointPictureStyle`.

    Параметры:

      - filename – Наименование растрового файла. Строка до 31 символа длиной. Данный файл должен находится в каталоге CustSymb с ресурсами. Например, “Arrow.BMP”.

      - color – Цвет символа.

      - size – Размер символа в пунктах от 1 до 48.

      - customstyle – Задание дополнительных параметров стиля оформления.

  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 font_name: str

    Устанавливает или возвращает наименование шрифта.

    Например, Adobe Helvetica.

  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 has_shadow: bool

    Устанавливает или возвращает признак „Тень“.

  property rotation: float

    Устанавливает или возвращает угол поворота.

  property size: int

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

  property symbol: int

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

  to_mapinfo() → str

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

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

  property white_border: bool

    Устанавливает или возвращает признак „Светлая окантовка“.