MainWindow

Примечание

Этот класс не входит в поставку Аксиома.Runtime

class axioma.app.MainWindow

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

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

MainWindow(gui, parent=None)

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

Параметры:
  • gui (Gui) – сервис пользовательского интерфейса
  • parent (QWidget или None) – родительский виджет
addPanel(dock)

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

Параметры:dock (QDockWidget) – плавающая панель
browserManager()

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

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

Результат:менеджер таблиц
Тип результата:BrowserManager
closeAll()

Закрыть все

Результат:успешность выполнения операции
Тип результата:bool

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

closeAllDataObjects()

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

Результат:успешность выполнения операции
Тип результата:bool
closeDataObject()

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

Результат:успешность выполнения операции
Тип результата:bool
closeDataObjects(dataObjectRefs)

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

Параметры:dataObjectRefs (list [DataObjectRef]) – список объектов данных
Результат:успешность выполнения операции
Тип результата:bool
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()

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

newLegend()

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

newMap()

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

newReport()

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

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) – объект данных
  • open_mode (OpenMode) – способ представления
registerRaster()

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

reportViewManager()

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

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

Результат:менеджер отчетов
Тип результата:ReportViewManager
saveTables()

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

saveWorkspace()

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

saveWorkspace(filename)

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

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

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

Параметры:window_name (str) – наименование окна
setActiveSubWindow(widget)

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

Параметры:widget (QWidget) – экземпляр окна
setActiveSubWindow(dataObject)

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

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

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

showHelp()

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

showInfo()

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

showSearchDialog()

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

showTableData(table)

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

Параметры:table (Table) – таблица для отображения
Результат:отображаемый TableWindow
Тип результата:TableWindow
transformRaster()

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

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

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)