ReportView - Окно просмотра отчета
- class axipy.ReportView
Базовые классы:
DrawableView
Окно с планом отчета. Для создания экземпляра необходимо использовать
axipy.ViewManager.create_reportview()
. через экземплярaxipy.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
Свойства:
Возможен ли откат на один шаг вперед.
Возможен ли откат на один шаг назад.
Есть ли изменения в окне.
Размер ячейки сетки.
Размер и положение окна.
Объект отчета.
Показывать границы страниц.
Показывать размер элементов.
Показывать сетку привязки.
Показывать линейку по краям.
Возвращает тип состояния окна.
Включает режим привязки координат при редактировании геометрии в окне карты или отчета.
Включение режима притяжения элементов отчета к направляющим.
Включение режима притяжения элементов отчета к узлам сетки.
Заголовок окна просмотра.
Текущий масштаб.
Виджет, соответствующий содержимому окна.
Вертикальные направляющие.
Горизонтальные направляющие.
Методы:
Удаляет все направляющие.
Очищает выбранные направляющие.
close
()Закрывает окно.
Наиболее эффективно заполняет пространство отчета масштабированием его элементов.
Ссылка на используемый текущий принтер.
offset
(dx, dy)Производит сдвиг окна карты или отчета.
redo
()Производит откат на один шаг вперед.
reset_parent
(parent)Сбрасывает окно контейнера для карты или таблицы просмотра, если он существует и закрывает его.
save_template
(file_name)Сохраняет отчет в виде шаблона как файл *.tmpl
scale_with_center
(scale, center)Установка нового центра с заданным масштабированием.
set_printer
(printer)Устанавливает для отчета объект
PySide2.QtPrintSupport.QPrinter
show
([type])Показывает окно в соответствие с приведенным типом.
undo
()Производит откат на один шаг назад.
Сигналы:
Сигнал при смещении курсора мыши.
Сигнал об изменении контента окна.
- clear_guidelines()
Удаляет все направляющие.
- clear_selected_guidelines()
Очищает выбранные направляющие.
- close()
Закрывает окно.
Примечание
Если при закрытии окна выдается запрос о сохранении данных перед закрытием и необходимо изменить поведение, то это можно сделать через соответствующие типу окна настройки или же через свойство
axipy.CurrentSettings.SilentCloseWidget
- 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 mouse_moved: Signal
Сигнал при смещении курсора мыши. Возвращает значения в координатах отчета.
Пример:
reportview.mouse_moved.connect(lambda x,y: print('Coords: {} {}'.format(x, y)))
- offset(dx: float, dy: float)
Производит сдвиг окна карты или отчета. Особенностью является то, что при этом сохраняется прежний центр (актуально для карты).
- Параметры:
dx – Смещение по горизонтали в координатах экрана (пикселях)
dy – Смещение по вертикали в координатах экрана (пикселях)
- 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()
- save_template(file_name: str)
Сохраняет отчет в виде шаблона как файл *.tmpl
- Параметры:
file_name – Наименование выходного файла.
- scale_with_center(scale: float, center: Pnt)
Установка нового центра с заданным масштабированием.
- Параметры:
scale – Коэффициент масштабирования по отношению к текущему.
center – Устанавливаемый центр.
- 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 snap_mode: bool
Включает режим привязки координат при редактировании геометрии в окне карты или отчета.
- undo()
Производит откат на один шаг назад.
- property widget: QWidget
Виджет, соответствующий содержимому окна.
- Результат:
Qt5 виджет содержимого.
- property x_guidelines: XGuidelines
Вертикальные направляющие. Значения содержатся в единицах измерения отчета.
Рассмотрим на примере:
# Добавление вертикальной направляющей reportview.x_guidelines.append(20) # Изменение значения направляющей по индексу reportview.x_guidelines[0] = 80 # Удаление всех направляющих. reportview.clear_guidelines()
- property y_guidelines: YGuidelines
Горизонтальные направляющие. Работа с ними производится по аналогии с вертикальными направляющими.