DrawableView - Базовый класс с поддержкой визуального редактирования геометрий

class axipy.DrawableView

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

Базовый класс для визуализации геометрических данных.

Свойства:

can_redo

Возможен ли откат на один шаг вперед.

can_undo

Возможен ли откат на один шаг назад.

is_modified

Есть ли изменения в окне.

position

Размер и положение окна.

show_type

Возвращает тип состояния окна.

snap_mode

Включает режим привязки координат при редактировании геометрии в окне карты или отчета.

title

Заголовок окна просмотра.

widget

Виджет, соответствующий содержимому окна.

Методы:

close()

Закрывает окно.

offset(dx, dy)

Производит сдвиг окна карты или отчета.

redo()

Производит откат на один шаг вперед.

reset_parent(parent)

Сбрасывает окно контейнера для карты или таблицы просмотра, если он существует и закрывает его.

scale_with_center(scale, center)

Установка нового центра с заданным масштабированием.

show([type])

Показывает окно в соответствие с приведенным типом.

undo()

Производит откат на один шаг назад.

Сигналы:

scene_changed

Сигнал об изменении контента окна.

property can_redo: bool

Возможен ли откат на один шаг вперед.

property can_undo: bool

Возможен ли откат на один шаг назад.

close()

Закрывает окно.

property is_modified: bool

Есть ли изменения в окне.

offset(dx: float, dy: float)

Производит сдвиг окна карты или отчета. Особенностью является то, что при этом сохраняется прежний центр (актуально для карты).

Параметры:
  • dx – Смещение по горизонтали в координатах экрана (пикселях)

  • dy – Смещение по вертикали в координатах экрана (пикселях)

property position: QRect

Размер и положение окна.

redo()

Производит откат на один шаг вперед. При этом возвращается состояние до последней отмены.

reset_parent(parent: QWidget)

Сбрасывает окно контейнера для карты или таблицы просмотра, если он существует и закрывает его. Это требуется когда окно карты или таблица просмотра необходимо встроить в другое окно.

Параметры:

parent – Окно - новый родитель

Пример встраивания окно карты в диалог:

table = provider_manager.openfile('world.tab')
layer = Layer.create(table)
m = Map([layer])
view = view_manager.create_mapview(m)

# Диалог, в который будет встраиваться
class MyDialog(QDialog):

    def __init__(self ):
        super().__init__()
        # Инициализируем менеджер компоновки
        self.layout = QGridLayout()
        self.setLayout(self.layout)

    def set_mapview(self, view):
        # Устанавливаем окно карты как контент данного диалога
        view.reset_parent(self)
        self.layout.addWidget(view.widget)
        view.show()

dialog = MyDialog()
dialog.resize(500,300)
dialog.set_mapview(view)
dialog.show()
scale_with_center(scale: float, center: Pnt)

Установка нового центра с заданным масштабированием.

Параметры:
  • scale – Коэффициент масштабирования по отношению к текущему.

  • center – Устанавливаемый центр.

property scene_changed: Signal

Сигнал об изменении контента окна.

Тип результата:

Signal[]

show(type: int = SHOW_NORMAL)

Показывает окно в соответствие с приведенным типом.

Допустимые значения:

Константа

Значение

Описание

SHOW_NORMAL

1

Обычный показ окна (по умолчанию).

SHOW_MINIMIZED

2

Показ окна в режиме минимизации.

SHOW_MAXIMIZED

3

Показ окна в режиме распахивания.

property show_type: int

Возвращает тип состояния окна. Подробнее см. show()

property snap_mode: bool

Включает режим привязки координат при редактировании геометрии в окне карты или отчета.

property title: str

Заголовок окна просмотра.

undo()

Производит откат на один шаг назад.

property widget: QWidget

Виджет, соответствующий содержимому окна.

Результат:

Qt5 виджет содержимого.