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)