PolygonStyle - Стиль полигонов

digraph geometry {
    node [shape="box", style=filled, fillcolor="lightgray"]
    rankdir=LR
    labelloc="t";
    label="Зависимости стиля площадного объекта:";

    Style  [ href="Style.html#ref-label-style-class" ];
    LineStyle  [ href="LineStyle.html#ref-label-linestyle-class" ];
    FillStyle  [ href="FillStyle.html#ref-label-fillstyle-class" ];
    PolygonStyle  [ href="PolygonStyle.html#ref-label-polygonstyle-class", fillcolor=green, style=filled];

    Style -> PolygonStyle;
    PolygonStyle -> LineStyle [ label="Обводка", style=dashed, arrowhead=none];
    PolygonStyle -> FillStyle [ label="Заливка", style=dashed, arrowhead=none];
}
class axipy.PolygonStyle

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

Стиль площадного объекта. По умолчанию создается прозрачный стиль FillStyle с черной окантовкой LineStyle.

Пример.
# Создадим стиль по умолчанию
plstyle = PolygonStyle()
print(plstyle.to_mapinfo())
# Назначим цвет заливки и фона заливки
plstyle.set_brush(color=Qt.green, bgColor=Qt.blue)
print(plstyle.to_mapinfo())
# Установим обводку
plstyle.set_pen(color=Qt.black)
print(plstyle.to_mapinfo())
# Установим параметры заливки через свойства
plstyle.fill.pattern = 5
plstyle.fill.color = Qt.blue
# Установим параметры обводки через свойства
plstyle.border.width = 4
plstyle.border.color = Qt.blue
'''
>>> Brush (1, 16777215)
>>> Brush (1, 65280, 255)
>>> Pen (1, 2, 0)  Brush (1, 65280, 255)
'''
Параметры:
  • pattern – Номер стиля заливки.

  • color – Цвет основной заливки.

  • pattern_pen – Цвет обводки. По умолчанию обводка отсутствует.

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

__init__([pattern, color, pattern_pen])

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

for_geometry(geom)

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

from_mapinfo(mapbasic_string)

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

Свойства:

border

Стиль окантовки.

fill

Стиль заливки.

Методы:

clone()

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

draw(geometry, painter)

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

set_brush([pattern, color, bgColor])

Задание стиля заливки площадного объекта.

set_pen([pattern, color, width])

Задание стиля обводки.

to_mapinfo()

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

__init__(pattern: int = 1, color: QColor = Qt.white, pattern_pen: int = 1)
property border: LineStyle

Стиль окантовки. Может отсутствовать. Для переопределения можно также использовать set_pen().

clone() Style

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

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 fill: FillStyle

Стиль заливки.

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)")
set_brush(pattern: int = 1, color: QColor = Qt.white, bgColor: QColor = Qt.transparent)

Задание стиля заливки площадного объекта.

Параметры:
  • pattern – Номер стиля заливки. Шаблон задается числом от 1 до 71, при этом в шаблоне с номером 1 оба цвета отсутствуют, а в шаблоне 2 отсутствует цвет фона. Шаблоны с кодами 9-11 зарезервированы для внутренних целей.

  • color – Цвет основной заливки.

  • bgColor – Цвет заднего фона, если заливка неполная.

Доступные стили заливки см. FillStyle:

set_pen(pattern: int = 2, color: QColor = Qt.black, width: int = 1)

Задание стиля обводки. Параметры аналогичны при задании стиля линии LineStyle()

Параметры:
  • pattern – Номер стиля линии.

  • color – Цвет линии

  • width – Толщина линии.

to_mapinfo() str

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

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