MainWindow¶
Примечание
Этот класс не входит в поставку Аксиома.Runtime
-
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)¶ Фабричный метод для создания объекта
Параметры: Результат: Новый созданный объект
Тип результата:
-
createFile()¶ Метод, предназначенный для вызова диалога «Создать файл»
-
createMapViewForLayerList(layers, title=None)¶ Создает новое окно просмотра карты на базе перечня слоев
Параметры: Результат: Созданный объект
Тип результата:
-
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) – способ представления
Результат: успешность выполнения операции
Тип результата: - filename (
-
openLayersControl()¶ Отобразить панель управления слоями
-
openPreferences()¶ Метод, предназначенный для вызова диалога «Параметры»
-
openReportTemplate()¶ Метод, предназначенный для открытия шаблона отчета
-
openWorkspace()¶ Вызов диалога «Открыть рабочее пространство»
-
openWorkspace(filename) Открыть рабочее пространство
Параметры: filename ( str) – наименование файла
-
registerDataObject(dataObject, openMode=OpenMode_Undefined)¶ Добавить указанный объект данных в главное окно
Параметры: - dataObject (
DataObject) – объект данных - open_mode (
OpenMode) – способ представления
- 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
-
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)