Страница 11 из 16

Re: Плагины

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

Re: Плагины

Добавлено: 01 апр 2024, 13:03
Матвеич
Простите , а почему выдает ошибку ?

Re: Плагины

Добавлено: 01 апр 2024, 13:27
gisamap
Вот пример прямо из консоли python Axioma
pythn_sub.png
pythn_sub.png (183.62 КБ) 1051 просмотр

Re: Плагины

Добавлено: 01 апр 2024, 13:28
gisamap
Нужно subprocess.run(["C:\DJOKER\Topik\TOOLS\geotools.exe"])
или
subprocess.run("C:\DJOKER\Topik\TOOLS\geotools.exe")

Re: Плагины

Добавлено: 01 апр 2024, 13:54
Матвеич
ВЫ ГЕНИЙ !!!!!!
Примите мои уверения в совершеннейшем к ВАМ почтении !!!!

Re: Плагины

Добавлено: 02 апр 2024, 10:57
Матвеич
Доброго времени суток, Форумчане !!!

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

Как отследить нажатие правой кнопки мыши ?
Как вставить свой пункт в быстрое меню (вызвать свою функцию) , при нажатии правой кнопки мыши , в активном окне карты .

Re: Плагины

Добавлено: 02 апр 2024, 11:21
gisamap
Добрый день.
Активное окно Axioma можно получить
view_manager.active
Соответственно
if isinstance(view_manager.active,MapView):
print("Активное окно - карта")

Re: Плагины

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


view_manager.active_changed.connect(changeView)

В этом случае при изменении активного окна Axioma будет вызываться changeView

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'))

Re: Плагины

Добавлено: 02 апр 2024, 12:38
gisamap
Насколько я понимаю речь идет о меню появлявшемся
addMenu.png
addMenu.png (185 КБ) 945 просмотров
при нажатии на правую кнопку мыши