Плагины

Вопросы связанные с работой ГИС Аксиома
Аватара пользователя
gisamap
Сообщения: 217
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 01 апр 2024, 13:01

А какая разница? Вы можете в под Axioma написать любое приложение на "чистом" Python и запустить под Axioma . При желание вы можете даже использовать Com (Window’s Component Object Model ) https://pbpython.com/windows-com.html , естественно только под Windows .
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 01 апр 2024, 13:03

Простите , а почему выдает ошибку ?
Аватара пользователя
gisamap
Сообщения: 217
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 01 апр 2024, 13:27

Вот пример прямо из консоли python Axioma
pythn_sub.png
pythn_sub.png (183.62 КБ) 576 просмотров
Аватара пользователя
gisamap
Сообщения: 217
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 01 апр 2024, 13:28

Нужно subprocess.run(["C:\DJOKER\Topik\TOOLS\geotools.exe"])
или
subprocess.run("C:\DJOKER\Topik\TOOLS\geotools.exe")
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 01 апр 2024, 13:54

ВЫ ГЕНИЙ !!!!!!
Примите мои уверения в совершеннейшем к ВАМ почтении !!!!
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 02 апр 2024, 10:57

Доброго времени суток, Форумчане !!!

Дано : Средствами ГИС Аксиома открыто всего 5 таблиц - в 1-м окне 2 таблицы, во 2-м - 3 таблицы.
Задача: Отследить количество и имена таблиц ,в активном окне, выбранном пользователем.

Как отследить нажатие правой кнопки мыши ?
Как вставить свой пункт в быстрое меню (вызвать свою функцию) , при нажатии правой кнопки мыши , в активном окне карты .
Аватара пользователя
gisamap
Сообщения: 217
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 02 апр 2024, 11:21

Добрый день.
Активное окно Axioma можно получить
view_manager.active
Соответственно
if isinstance(view_manager.active,MapView):
print("Активное окно - карта")
Аватара пользователя
gisamap
Сообщения: 217
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 02 апр 2024, 11:28

Лучше вообще использовать сигнал active_changed класса axipy.ViewManager -
def changeView():
'''Обработка изменения активного View'''
if isinstance(view_manager.active,MapView):
print("Активное окно - карта")


view_manager.active_changed.connect(changeView)

В этом случае при изменении активного окна Axioma будет вызываться changeView
Аватара пользователя
Дмитрий
Сообщения: 62
Зарегистрирован: 04 июн 2019, 08:33

Re: Плагины

Сообщение Дмитрий » 02 апр 2024, 12:29

Матвеич писал(а): 02 апр 2024, 10:57
Как вставить свой пункт в быстрое меню (вызвать свою функцию) , при нажатии правой кнопки мыши , в активном окне карты .
Здравствуйте!

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

Код: Выделить всё

import axipy
import PySide2

menu = axipy.view_manager.active.widget.findChild(PySide2.QtWidgets.QMenu)
menu.addAction("User action", lambda: print('Ok'))
Аватара пользователя
gisamap
Сообщения: 217
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 02 апр 2024, 12:38

Насколько я понимаю речь идет о меню появлявшемся
addMenu.png
addMenu.png (185 КБ) 470 просмотров
при нажатии на правую кнопку мыши
Ответить