MainWindow

class axioma.app.MainWindow

Данный класс представляет собой главное окно приложения.

Унаследован от: QMainWindow

addPanel(dock)

Добавить плавающую панель

Параметры

dock (QDockWidget) – плавающая панель

closeAll()

Закрыть все

Результат

успешность выполнения операции

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

bool

Метод, предназначенный для выполнения команды «Вырезать»

closeAllDataObjects()

Закрыть все объекты данных

Результат

успешность выполнения операции

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

bool

closeDataObject()

Вызов диалога «Закрыть объект данных»

Результат

успешность выполнения операции

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

bool

closeDataObjects(dataObjectRefs)

Закрыть объекты данных

Параметры

dataObjectRefs (list [DataObjectRef]) – список объектов данных

Результат

успешность выполнения операции

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

bool

static create(gui, parent=None)

Фабричный метод для создания объекта

Параметры
  • gui (Gui) – сервис пользовательского интерфейса

  • parent (QWidget или None) – родительский виджет

Результат

Новый созданный объект

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

MainWindow

createFile()

Метод, предназначенный для вызова диалога «Создать файл»

createMapViewForLayerList(layers, title=None)

Создает новое окно просмотра карты на базе перечня слоев

Параметры
  • layers (list [Layer]) – Перечень слоев

  • title (str) – Заголовок окна. Если не указан, задается по умолчанию.

Результат

Созданный объект

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

MapView

dataCatalog()

Метод, позволяющий получить доступ к каталогу открытых источников данных.

Результат

каталог открытых источников данных

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

DataCatalogWithSelection

exportRaster()

Экспортировать окно в растр

listTables()

Не рекомендуется, начиная с версии >2.0.1: используйте более обобщенный подход получения списка таблиц через список всех объектов axioma.core.dp.DataCatalogInterface.allDataObjects() и функций filter() и isinstance()

import axioma.core.dp
object_list=axioma.app.mainWindow.dataCatalog().allDataObjects()
table_filter_function=lambda obj: isinstance(obj, axioma.core.dp.Table)
table_list=list(filter(table_filter_function, object_list))

Метод позволяющий получить список таблиц

Результат

Список открытых таблиц

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

list [Table]

mapViewManager()

Не рекомендуется, начиная с версии >2.0.1: используйте более обобщенный axioma.gui.WidgetManagerService

Метод, позволяющий получить доступ к менеджеру карт

Результат

менеджер карт

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

MapViewManager

newBrowser()

Создание нового окна списка. Если в системе присутствует более чем один источник данных, будет выдан запрос на выбор необходимого.

Результат

Созданные объекты TableWindow в виде списка

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

TableWindow

newLegend()
Результат

Созданное окно легенды LegendView

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

LegendView

Создание новой легенды

newMap()

Создание нового окна карты. Если источников данных более одного, будет вызван диалог выбора слоев и их порядка.

Результат

Созданный объекты MapView

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

MapView

newReport()
Результат

Созданный объекты ReportView

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

ReportView

Создание нового окна отчета

newThematic()

Вызов диалога создания нового тематического слоя для текущей карты

openCustomZoom()

Показать по-другому

openDatabaseSql()

Метод, предназначенный для вызова диалога «Открытие источника данных SQL»

openFile()

Метод, предназначенный для вызова диалога «Открыть файл»

openFile(filename)

Метод позволяющий открыть файл, указав путь

Параметры

filename (str) – наименование файла

Результат

успешность выполнения операции

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

bool

openFile(filename, open_mode)

Метод позволяющий открыть файл, указав путь и способ представления

Параметры
  • filename (str) – наименование файла

  • open_mode (OpenMode) – способ представления

Результат

успешность выполнения операции

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

bool

openLayersControl()

Отобразить панель управления слоями

openPreferences()

Метод, предназначенный для вызова диалога «Параметры»

openReportTemplate()

Метод, предназначенный для открытия шаблона отчета

openWorkspace()

Вызов диалога «Открыть рабочее пространство»

openWorkspace(filename)

Открыть рабочее пространство

Параметры

filename (str) – наименование файла

registerDataObject(dataObject, openMode=OpenMode_Undefined)

Добавить указанный объект данных в главное окно

Параметры
  • dataObject (DataObject) – объект данных

  • openMode (OpenTypeMode) – способ представления

Результат

Зарегистрированный объект данных

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

DataObject

registerRaster()

Метод, предназначенный для вызова диалога регистрации растра

saveTables()

Выполнить сохранение изменений в таблицах

saveWorkspace()

Вызов диалога «Сохранить рабочее пространство»

saveWorkspace(filename)

Сохранить рабочее пространство

Параметры

filename (str) – наименование файла

setActiveSubWindow(window_name)

Установить окно активным через его имя

Параметры

window_name (str) – наименование окна

setActiveSubWindow(widget)

Установить окно активным через экземпляр самого окна

Параметры

widget (QWidget) – экземпляр окна

setActiveSubWindow(dataObject)

Установить окно активным через объект данных

Параметры

dataObject (DataObject) – объект данных

showColumnUpdateDialog()

Метод, предназначенный для выполнения операции «Обновить колонку»

showSearchDialog()

Метод, предназначенный для выполнения поиска в таблице

showTableData(table)

Отображает таблицу в виде таблицы просмотра и возвращает отображаемый TableWindow

Параметры

table (Table) – таблица для отображения

Результат

отображаемый TableWindow

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

TableWindow

Пример создания окна карты и таблицы просмотра в главном окне приложения:

import axioma.app
from PyQt5.QtCore import QRectF, QPointF

# Открываем таблицу
table = axioma.core.open_json({"src" : "/tmp/world.tab"})
# Если нужно, чтобы пользователь видел таблицу в списке открытых данных,
# добавляем её в каталог приложения
axioma.app.mainWindow.dataCatalog().addDataObject(table)
# Создаём слой для таблицы
layer = axioma.app.render.createLayerForDataObject(table)
# Создаём окно карты и показываем его в главном окне
mapView = axioma.app.mainWindow.createMapViewForLayerList([layer], 'Моя карта')
#
# Попробуем заменить координатную систему для карты, если нам это необходимо.
# Текущую КС карты можно взять так: mapView.viewport().coordSystem()
# КС таблицы можно взять так: table.coordSystem()
# Или создать с помощью CoordSysFactory:
cs = axioma.app.csfactory.createFromEpsg(4326);
# Задаем новую область отображения:
rect_cs = cs.rectNumericCoordSys()
rect_device = QRectF(mapView.rect())
rect_cs.setHeight(rect_cs.width() / ( rect_device.width() / rect_device.height())) # пропорционально размеру окна виджета
viewport = axioma.render.MapViewport(rect_device, rect_cs, cs)
# Устанавливаем область отображения для карты
mapView.setViewport(viewport)
# Показываем таблицу в виде списка
axioma.app.mainWindow.showTableData(table)