Способы ввода и вывода информации¶
Ввод-вывод информации с помощью стандартных функций¶
В языке python для ввода и вывода функции стандартно используются функции input() и print().
Функция print() выводит переданные в неё аргументы в стандартный поток вывода. ГГИС ГЕОМИКС предоставляет свой поток вывода и перенаправляет вывод всей информации в окно журнала сообщений. Это окно имеет возможность прокрутки, а также очистки.
Пример скрипта для вывода информации в журнал сообщений с использованием стандартной функции print() и результат вывода:
#! python
import gmx.Map as Map
plants = Map.EnumPlants(Map.epmAll)
last_map = 0
for (map_rec, plant_rec) in plants:
(maps, plants) = Map.OpenPlant(map_rec, plant_rec)
if map_rec != last_map:
print(f"Карта: {maps['название']}")
last_map = map_rec
print(f"Слой: {maps['название']} | {plants['название']}")
if last_map == 0:
print("Текущий картографический проект пуст")
С помощью функции input() пользователь может осуществить ввод текстовых данных в программу. В качестве единственного параметра функция input() принимает строку-приглашение, которую выводит пользователю перед курсором ввода. ГГИС ГЕОМИКС также осуществляет замену консольного ввода с помощью функции input() на более удобный ввод данных в окне графического интерфейса.
Код вызова функции input() и результат вызова в ГГИС ГЕОМИКС:
#! python
value = input("Введите шаг интерполяции")
Ввод информации с использованием модуля gmx.Gui¶
Еще более удобный ввод данных в ГГИС ГЕОМИКС можно выполнить с помощью функции ExecInput() из модуля gmx.Gui.
Функция имеет следующие параметры:
Title - Заголовок окна ввода
ModalMode - Признак модальности выводимого окна
Params - Список параметров
Каждый элемент списка Params представляет собой кортеж следующей структуры:
Title - Заголовок элемента ввода
Width - Ширина поля ввода в пикселах
Value - Значение элемента данных при старте диалога
ValueList - Необязательный список возможных значений. Если он указан, то выходное значение должно быть этом списке
Возвращает: список введенных параметров или None, если пользователь нажал кнопку Отмена.
С помощью этой функции возможно осуществить за один раз ввод сразу нескольких значений с использованием графического интерфейса программы.
Пример кода и результат использования функции:
from gmx import Geo, Gui, NetBase
DB = Geo.Database
SkvBase = DB.OpenTable("Скважины")
Result = Gui.ExecInput("Расчет центров интервалов", True, [
("Интервальные данные", 200, "Опробование", Geo.IntervalFields(DB, SkvBase)),
("Настройка ориентации", 200, 0, ["X-Север; Y-Восток", "X-Восток; Y-Север"])
])
if Result is None:
quit()