Плагины
Re: Плагины
Доброго времени суток !
где и в чем допущена ошибка ?
katalog_uz.py находится в папке buttons
запускаю point_uz в модуле _init_.py print( katalog_uz.point_uz(self))
текст katalog_uz.py
import sys
sys.path.insert(0, 'C:\\DJOKER\\MapTopik\\buttons')
def point_uz(self) -> None:
# открыть файл выбора условного знака
r = 2*5
print(' _код точки ... ',r)
return r
Все работает прекрасно , значение r возвращает: 10 .
заменяю r = 2*5 на r=2*7 , собираю и запускаю программу - значение r остается равным 10.
выхожу из Аксиомы , снова устанавливаю свой дополнительный модуль , выбираю пункт меню вычислений , все нормально и r=14
работаю в PyCharm 2024.3.2 , компилирую _init_.py и katalog_uz .
где и в чем допущена ошибка ?
katalog_uz.py находится в папке buttons
запускаю point_uz в модуле _init_.py print( katalog_uz.point_uz(self))
текст katalog_uz.py
import sys
sys.path.insert(0, 'C:\\DJOKER\\MapTopik\\buttons')
def point_uz(self) -> None:
# открыть файл выбора условного знака
r = 2*5
print(' _код точки ... ',r)
return r
Все работает прекрасно , значение r возвращает: 10 .
заменяю r = 2*5 на r=2*7 , собираю и запускаю программу - значение r остается равным 10.
выхожу из Аксиомы , снова устанавливаю свой дополнительный модуль , выбираю пункт меню вычислений , все нормально и r=14
работаю в PyCharm 2024.3.2 , компилирую _init_.py и katalog_uz .
Re: Плагины
добрый вечер !
добавил этот оператор и заработало
from .buttons.katalog_uz import point_uz,pline_uz,region_uz,text_uz
благодаря опыту и интуиции , а как хочется просто прочитать в руководстве что надо делать
добавил этот оператор и заработало
from .buttons.katalog_uz import point_uz,pline_uz,region_uz,text_uz
благодаря опыту и интуиции , а как хочется просто прочитать в руководстве что надо делать
Re: Плагины
Доброго времени суток !
как считать в программе координаты X,Y в окне карты, где кликнули указателем курсора пользовательской кнопкой ?
какие операторы применить ?
(MapTool не помогает)
как считать в программе координаты X,Y в окне карты, где кликнули указателем курсора пользовательской кнопкой ?
какие операторы применить ?
(MapTool не помогает)
Re: Плагины
Добрый день.
Создайте class дочерний от MapTool см https://axipy.axioma-gis.ru/6.2/referen ... py.MapTool
class MyTool(MapTool):
def mousePressEvent(self, event):
print('mouse pressed')
pos_view=self.to_scene(event.pos())
return self.PassEvent
pos_view - координаты карты
Создайте class дочерний от MapTool см https://axipy.axioma-gis.ru/6.2/referen ... py.MapTool
class MyTool(MapTool):
def mousePressEvent(self, event):
print('mouse pressed')
pos_view=self.to_scene(event.pos())
return self.PassEvent
pos_view - координаты карты
Re: Плагины
Gisamap добрый день !
Ваш рекомендуемый фрагмент :
class MyTool(MapTool):
def mousePressEvent(self, event) -> bool:
print('mouse pressed')
self.pos_view = self.to_scene(event.pos())
return self.PassEvent
вставляю в модуль C:\DJOKER\MapTopik\buttons\katalog_uz.py
запускаю и mousePressEvent не работает.
в строке : def mousePressEvent(self, event) -> bool:
mousePressEvent не активно.
вероятно дочерний класс от MapTool создан неверно , а как правильно не знаю.
В руководстве простых работающих примеров нет.
структура моей программы .
_init_.py
------------------
------------------
import sys
sys.path.insert(0, 'C:\\DJOKER\\MapTopik\\buttons')
from .buttons.katalog_uz import point_uz,pline_uz,region_uz,text_uz
class MapTopik(Plugin):
def __init__(self) -> None:
---------------------------------
---------------------------------
self._action5: ActionButton = ActionButton(
title=self.tr("точечный знак"),
icon=st3 ,
on_click=self.uz_point,
enable_on=axipy.ObserverManager.HasTables,
tooltip=self.tr("точечный топографический условный знак")
)
position = Position(tr("Условные знаки"), tr("Минимальный"))
position.add(self._action5)
----------------------------
----------------------------
# *******************************************
def uz_point(self) -> None :
# построение точечных условных знаков
# *******************************************
-----------------------------
# точечный условный знак (
# 157 - код условного точечного знака, table - редактируемая таблица)
point_uz(self,157,table)
------------------
------------------
конец основной программы
############################################
структура модуля katalog_uz.py
#############################################
from PySide2.QtCore import Qt
from axipy import MapTool
# ********************
def load(self):
# ********************
self.attr_index = 0
# *****************************************************
def point_uz(self, kod, ntable) -> None:
# построение по коду точечных объектов
# *****************************************************
class MyTool(MapTool):
def mousePressEvent(self, event) -> bool:
print('.4mouse pressed')
self.pos_view = self.to_scene(event.pos())
return self.PassEvent
#*************************************
def pline_uz(kod) -> None:
# построение по коду линейных объектов
#*************************************
print('линия ', kod)
# *****************************
def region_uz(kod) -> None:
# построение по коду площадных объектов
# ******************************
print('площадной объект ', kod)
# ***********************************
def text_uz(kod) -> None:
# построение по коду текстовых объектов
# *************************************
print('текст ', kod)
P.S. если возможно приведите самый маленький работающий фрагмент.
Ваш рекомендуемый фрагмент :
class MyTool(MapTool):
def mousePressEvent(self, event) -> bool:
print('mouse pressed')
self.pos_view = self.to_scene(event.pos())
return self.PassEvent
вставляю в модуль C:\DJOKER\MapTopik\buttons\katalog_uz.py
запускаю и mousePressEvent не работает.
в строке : def mousePressEvent(self, event) -> bool:
mousePressEvent не активно.
вероятно дочерний класс от MapTool создан неверно , а как правильно не знаю.
В руководстве простых работающих примеров нет.
структура моей программы .
_init_.py
------------------
------------------
import sys
sys.path.insert(0, 'C:\\DJOKER\\MapTopik\\buttons')
from .buttons.katalog_uz import point_uz,pline_uz,region_uz,text_uz
class MapTopik(Plugin):
def __init__(self) -> None:
---------------------------------
---------------------------------
self._action5: ActionButton = ActionButton(
title=self.tr("точечный знак"),
icon=st3 ,
on_click=self.uz_point,
enable_on=axipy.ObserverManager.HasTables,
tooltip=self.tr("точечный топографический условный знак")
)
position = Position(tr("Условные знаки"), tr("Минимальный"))
position.add(self._action5)
----------------------------
----------------------------
# *******************************************
def uz_point(self) -> None :
# построение точечных условных знаков
# *******************************************
-----------------------------
# точечный условный знак (
# 157 - код условного точечного знака, table - редактируемая таблица)
point_uz(self,157,table)
------------------
------------------
конец основной программы
############################################
структура модуля katalog_uz.py
#############################################
from PySide2.QtCore import Qt
from axipy import MapTool
# ********************
def load(self):
# ********************
self.attr_index = 0
# *****************************************************
def point_uz(self, kod, ntable) -> None:
# построение по коду точечных объектов
# *****************************************************
class MyTool(MapTool):
def mousePressEvent(self, event) -> bool:
print('.4mouse pressed')
self.pos_view = self.to_scene(event.pos())
return self.PassEvent
#*************************************
def pline_uz(kod) -> None:
# построение по коду линейных объектов
#*************************************
print('линия ', kod)
# *****************************
def region_uz(kod) -> None:
# построение по коду площадных объектов
# ******************************
print('площадной объект ', kod)
# ***********************************
def text_uz(kod) -> None:
# построение по коду текстовых объектов
# *************************************
print('текст ', kod)
P.S. если возможно приведите самый маленький работающий фрагмент.
Re: Плагины
используя ваши файлыДмитрий писал(а): ↑03 фев 2025, 11:36 Для решения данной задачи Вам необходимо реализовать свой инструмент карты от класса axipy.MapTool https://axipy.axioma-gis.ru/6.1/referen ... ool.cursor.
Как образец можно посмотреть пример "Пример Инструмента axipy", который входит в поставку и расположен в каталоге plugins/ru_axioma_gis_axipy_example_tool.
__init__.py
Code: Select all
import axipy
from .katalog_uz import MyTool1
class MapTopik(axipy.Plugin):
def __init__(self) -> None:
self._tool_button1 = axipy.ToolButton(
title=self.tr("точечный знак1"),
on_click=MyTool1,
enable_on=axipy.ObserverManager.HasTables,
)
position = axipy.Position(axipy.tr("Условные знаки"), axipy.tr("Минимальный"))
position.add(self._tool_button1)
Code: Select all
from PySide2 import QtGui
from axipy import MapTool
class MyTool1(MapTool):
def mousePressEvent(self, event: QtGui.QMouseEvent) -> bool:
print('.4mouse pressed', self.to_scene(event.pos()))
return self.PassEvent
Re: Плагины
Благодарю Вас за помощь , этот блок заработал.
Я правильно понял , что при построении линейных , площадных , текстовых объектов с помощью
пользовательских кнопок мы используем методы: class axipy.MapTool
Я правильно понял , что при построении линейных , площадных , текстовых объектов с помощью
пользовательских кнопок мы используем методы: class axipy.MapTool
Re: Плагины
доброго времени суток !!!
почти крайний вопрос
почти крайний вопрос
- Вложения
-
- Александр Дмитрий.docx
- (36.97 КБ) 6643 скачивания
Re: Плагины
Здравствуйте!
1. Для того, чтобы в дереве выбрать элемент можно использовать метод QTreeWidget.setCurrentItem https://doc-snapshots.qt.io/qtforpython ... urrentItem
2. Для запоминания между запусками необходимо использовать axipy.Plugin.settings https://axipy.axioma-gis.ru/6.2/referen ... n.settings. Его можно пробросить из модуля в форму
Поправленный пример приложен в аттаче
1. Для того, чтобы в дереве выбрать элемент можно использовать метод QTreeWidget.setCurrentItem https://doc-snapshots.qt.io/qtforpython ... urrentItem
2. Для запоминания между запусками необходимо использовать axipy.Plugin.settings https://axipy.axioma-gis.ru/6.2/referen ... n.settings. Его можно пробросить из модуля в форму
Поправленный пример приложен в аттаче
- Вложения
-
- MapTopik_select.zip
- (8.2 КБ) 5252 скачивания
Re: Плагины
Уважаемый Дмитрий !
Просто хочется встать и снять шляпу !!!!!!!!!!!!!!!!!!!!
Благодарю ВАС !!!!!!!!!!!!!!!!!!!!!!!!!!!!
P.S. эти ссылки я смотрел , но как они взаимодействуют .... ???? так и не понял !
Просто хочется встать и снять шляпу !!!!!!!!!!!!!!!!!!!!
Благодарю ВАС !!!!!!!!!!!!!!!!!!!!!!!!!!!!
P.S. эти ссылки я смотрел , но как они взаимодействуют .... ???? так и не понял !