ReportView - Окно просмотра отчета

class axipy.ReportView

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

Окно с планом отчета. Для создания экземпляра необходимо использовать axipy.ViewManager.create_reportview() через экземпляр view_manager. До параметров самого отчета axipy.render.Report можно доступиться через свойство ReportView.report()

Пример создания отчета:

reportview = view_manager.create_reportview()

# Добавим полигон
geomItem = GeometryReportItem()
geomItem.geometry = Polygon((10,10), (10, 100), (100, 100), (10, 10))
geomItem.style = PolygonStyle(45, Qt.red)
reportview.report.items.add(geomItem)

# Установим текущий масштаб
reportview.view_scale = 33

Свойства:

can_redo

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

can_undo

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

is_modified

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

mesh_size

Размер ячейки сетки.

position

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

rect

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

report

Объект отчета.

show_borders

Показывать границы страниц.

show_elements_size

Показывать размер элементов.

show_mesh

Показывать сетку привязки.

show_ruler

Показывать линейку по краям.

show_type

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

snap_mode

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

snap_to_guidelines

Включение режима притяжения элементов отчета к направляющим.

snap_to_mesh

Включение режима притяжения элементов отчета к узлам сетки.

title

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

view_scale

Текущий масштаб.

widget

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

x_guidelines

Вертикальные направляющие.

y_guidelines

Горизонтальные направляющие.

Методы:

clear_guidelines()

Удаляет все направляющие.

clear_selected_guidelines()

Очищает выбранные направляющие.

close()

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

fill_on_pages()

Наиболее эффективно заполняет пространство отчета масштабированием его элементов.

get_printer()

Ссылка на используемый текущий принтер.

mouse_moved(x, y)

Сигнал при смещении курсора мыши.

offset(dx, dy)

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

redo()

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

scale_with_center(scale, center)

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

set_printer(printer)

Устанавливает для отчета объект PySide2.QtPrintSupport.QPrinter

show([type])

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

undo()

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

Сигналы:

scene_changed

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

property can_redo: bool

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

property can_undo: bool

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

clear_guidelines()

Удаляет все направляющие.

clear_selected_guidelines()

Очищает выбранные направляющие.

close()

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

fill_on_pages()

Наиболее эффективно заполняет пространство отчета масштабированием его элементов.

get_printer() QPrinter

Ссылка на используемый текущий принтер. Для того, чтобы изменить настройки, нужно запросить существующий объект, поменять необходимые значения и снова назначить посредством ReportView.set_printer(). Или же установить другой объект PySide2.QtPrintSupport.QPrinter.

Пример смены свойств у текущего окна отчета
from PySide2.QtGui import QPageLayout, QPageSize
import axipy
# Получение текущего окна отчета
reportview = axipy.view_manager.active
if isinstance(reportview, axipy.ReportView):
    # Получение текущего принтера
    printer = reportview.get_printer()
    # Именение размера страницы
    printer.setPageSize(QPageSize(QPageSize.A3))
    # Изменение ориентации страницы
    printer.setPageOrientation(QPageLayout.Landscape)
    # Установление нового значения
    reportview.set_printer(printer)
property is_modified: bool

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

property mesh_size: float

Размер ячейки сетки.

mouse_moved(x: float, y: float) Signal

Сигнал при смещении курсора мыши. Возвращает значения в координатах отчета.

Параметры:
  • x – X координата

  • y – Y координата

Пример:

reportview.mouse_moved.connect(lambda x,y: print('Coords: {} {}'.format(x, y)))
offset(dx: float, dy: float)

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

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

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

property position: QRect

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

property rect: QRect

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

Предупреждение

Не рекомендуется, начиная с версии 4.0: Используйте position.

redo()

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

property report: Report

Объект отчета.

Результат:

Отчет.

scale_with_center(scale: float, center: Pnt)

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

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

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

property scene_changed: Signal

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

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

Signal[]

set_printer(printer: QPrinter)

Устанавливает для отчета объект PySide2.QtPrintSupport.QPrinter

Параметры:

printer – Новое значение принтера или измененное запрошенное ранее через ReportView.get_printer()

show(type: int = SHOW_NORMAL)

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

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

Константа

Значение

Описание

SHOW_NORMAL

1

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

SHOW_MINIMIZED

2

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

SHOW_MAXIMIZED

3

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

property show_borders: float

Показывать границы страниц.

property show_elements_size: float

Показывать размер элементов.

property show_mesh: bool

Показывать сетку привязки.

property show_ruler: float

Показывать линейку по краям.

property show_type: int

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

property snap_mode: bool

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

property snap_to_guidelines: bool

Включение режима притяжения элементов отчета к направляющим.

property snap_to_mesh: bool

Включение режима притяжения элементов отчета к узлам сетки.

property title: str

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

undo()

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

property view_scale: float

Текущий масштаб.

property widget: QWidget

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

Результат:

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

property x_guidelines

Вертикальные направляющие. Значения содержатся в единицах измерения отчета.

Рассмотрим на примере:

# Добавление вертикальной направляющей
reportview.x_guidelines.append(20)
# Изменение значения направляющей по индексу
reportview.x_guidelines[0] = 80
# Удаление всех направляющих.
reportview.clear_guidelines()
property y_guidelines

Горизонтальные направляющие. Работа с ними производится по аналогии с вертикальными направляющими.