Модуль пользовательского интерфейса gui
==============================================================

.. py:module:: gui

.. currentmodule:: axioma.gui


В данном модуле содержатся классы связанные с пользовательским интерфейсом.



Список классов
--------------

.. toctree::
	:glob:

	gui/*

.. toctree::
	:glob:
	:caption: Расширения
	
	gui/extensions/*


Пример минимального приложения с инициализацией ядра:

  .. code-block:: python
  
    import axioma.gui
    import sys
    from PyQt5.QtWidgets import *

    a = QApplication(sys.argv)
    gui = axioma.gui.Gui()
    gui.initialize()


Если используется :class:`~axioma.app.AxiomaApplication` на базе версии Аксиома.ГИС, то код выглядит следующим образом:

  .. code-block:: python
  
    import axioma.app
    import axioma.gui
    import sys

    a = axioma.app.AxiomaApplication(sys.argv)
    gui = axioma.gui.Gui()
    gui.initialize()

    
    

Функции
~~~~~~~~~~~~~

.. function:: exportToImage(map_view, width=-1, height = -1, dpi = -1)

	Экспортировать окно просмотра карты в изображение

	Если параметры ``width``, ``height`` или ``dpi`` меньше 0, они будет вычислены из \
	параметров окна просмотра карты ``map_view``.

	:param map_view: окно просмотра карты
	:type map_view: :class:`~axioma.gui.MapView`
	:param width: ширина
	:type width: :class:`int`
	:param height: высота
	:type height: :class:`int`
	:param dpi: количество точек на дюйм
	:type dpi: :class:`int`
	:return: изображение
	:rtype: :class:`~PyQt5.QtGui.QImage`

	.. code-block:: python
		:caption: Пример сохранения в файл
		:name: axioma.gui.exportToImage.save_to_file

		# получаем окно просмотра катры
		views = axioma.app.mainWindow.mapViewManager().mapViews()
		mapView = views[0]

		# сохраняем в файл
		axioma.gui.exportToImage(mapView).save(mapView.name() + '_saved' + '.png')


.. function:: upListSelectionForWidget(wi)

	Переместить выбранные элементы в списке на одну позицию вверх

	:type wi: :class:`~PyQt5.QtWidgets.QListWidget`
	:param wi: элемент для обработки

.. function:: downListSelectionForWidget(wi)

	Переместить выбранные элементы в списке на одну позицию вниз

	:type wi: :class:`~PyQt5.QtWidgets.QListWidget`
	:param wi: элемент для обработки

.. function:: generateProgressDialog(handler, spec)

    Метод фабрика диалогов отображающих прогресс. Внутри помимо создания
    самого диалога устанавливаются соедения между сигналами обработчика ``handler`` 
    и возвращаемым диалогом

    :param handler: Обработчик это мост между выполняемой задачей и диалогом
    :type handler: :class:`~axioma.core.PythonProgressHandler`
    :param spec: Структура с данными
    :type spec: :class:`~axioma.gui.ProgressSpec`
    :return: Диалог отображаюй прогресс операции
    :rtype: :class:`~PyQt5.QtWidgets.QDialog`

.. function:: getActionByName(name)
	
	Получить объект пользовательского интерфейса QAction для заданного названия ``name``
	
	:type name: :class:`string`
	:param name: название одного из стандартных действий в Аксиоме.ГИС; эти значения объявлены в модуле ``axioma.gui.action_id``
	
	.. csv-table:: Объявления стандартных действий в Аксиоме.ГИС
		:header: Поле, Описание
		
		add_legend_to_report, Легенда для карты
		add_node, Добавить узел
		add_scale_bar Масштабная линейка
		align_bottom_guideline, Выравнивание по нижней направляющей
		align_center_h_guideline, Выравнивание по центру горизонтальной направляющей
		align_center_v_guideline, Выравнивание по центру вертикальной направляющей
		align_left_guideline, Выравнивание по левой направляющей
		align_right_guideline, Выравнивание по правой направляющей
		align_top_guideline, Выравнивание по верхней направляющей
		buffer_zone_items, Буфер
		clear_guidelines, Очистить направляющие линии
		clear_target, Освободить изменяемый объект
		close_all, Закрыть все
		close_all_windows, Закрыть все окна
		close_current_window, Закрыть текущее окно
		close_db_connection, Закрыть соединение с СУБД
		close_table, Закрыть таблицу
		convert_to_polygon, Преобразовать в полигон
		convert_to_polyline, Преобразовать в полилинию
		copy, Копировать
		create_file, Создать файл
		create_point_objects, Создать точечные объекты из координат
		create_points_by_exif, Создать точечные объекты из EXIF
		cut, Вырезать
		deselect_all, Отменить выбор
		erase_inner_target, Удалить часть
		erase_outer_target, Удалить внешнюю часть
		exit, Выход
		export_table_to_db, Экспорт таблицы в БД
		export_table_to_file, Экспорт таблицы в файл
		export_raster, Экспорт окна в растр
		export_to_geopdf, Экспорт карты в GeoPDF
		generalize_geometries, Совмещение и генерализация
		group_items, Объединить объекты
		hotlink, Внешняя ссылка
		information, Сведения о программе
		invert_selection, Обратить выбор
		layer_control, Управление слоями
		line_style, Стиль линии
		manage_plugins, Модули
		mdi_cascade, Расположить окна каскадом
		mdi_tile, Расположить окна мозаикой
		new_browser, Новый список
		new_legend, Создать легенду
		new_map, Новая карта
		new_report, Новый отчет
		new_thematic, Тематика
		nodes_in_intersection, Добавление узлов в местах пересечений
		offset_object, Сдвиг
		open_db, Открыть таблицу из СУБД
		open_db_connection, Новое соединение с СУБД
		open_file, Открыть файл
		open_report_template, Открыть шаблон отчета
		open_tile, Открыть растровую "пирамиду"
		open_wfs, Открыть WFS
		open_wms, Открыть WMS
		open_wmts, Открыть WMTS
		open_workspace, Открыть рабочий набор
		pan, Сдвиг
		panels, Панели
		paste, Вставка
		polygon_style, Стиль полигонов
		polyline_split_target, Разрезать полилинией
		preferences, Параметры
		preview_report, Предварительный просмотр для печати
		print_report, Печать
		redo, Повторить действие
		refresh_report, Обновить окно отчета
		register_raster, Привязка растра
		remove_self_intersection, Устранение самопересечений
		remove_small_elements, Удаление объектов по заданному параметру
		report_element, Элемент отчета
		restore_tables, Восстановить таблицу
		rotate_object, Поворот объекта
		save_report_as_template, Сохранить отчет как шаблон
		save_tables, Сохранить изменения в таблице
		save_workspace, Сохранить рабочий набор
		search_in_table, Найти в таблице
		set_target, "Выбрать изменяемый объект"
		shape_geometry, Форма геометрии
		show_help, Помощь
		show_mesh_align, Показывать сетку привязки
		show_windows, Показать окна
		simplify_geometry, Упрощение объектов
		snap_geometries, Совмещение узлов объектов
		snap_to_mesh_align, Совмещение узлов объектов
		split_target, Разрезать полигоном
		sql_query, SQL-запрос
		symbol_style, Стиль символа
		text_style, Стиль текста
		transform_raster, Трансформация растра
		undo, Отменить действие 
		ungroup_items, Разъединить
		update_column, Обновить колонку
		toggle_nearly_geometries_topology, Переключить режим учёта соседних узлов
		toggle_edit, Переключить редактируемость выбранного слоя
