-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplugin.py
More file actions
77 lines (61 loc) · 2.93 KB
/
Copy pathplugin.py
File metadata and controls
77 lines (61 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# -*- coding: utf-8 -*-
import os.path
from qgis.PyQt.QtCore import QSettings, QTranslator, QCoreApplication
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtWidgets import QAction
from qgis.core import QgsApplication
import processing
from .elongacion_algorithm import ElongacionAlgorithm
from .gradiente_algorithm import GradienteAlgorithm
from .about_dialog import AboutDialog
# Algoritmos globales
ELONGACION_ALGORITHM = ElongacionAlgorithm()
GRADIENTE_ALGORITHM = GradienteAlgorithm()
class IndicesMorfologicosPlugin:
def __init__(self, iface):
self.iface = iface
self.plugin_dir = os.path.dirname(__file__)
locale = QSettings().value('locale/userLocale')[0:2]
locale_path = os.path.join(self.plugin_dir, 'i18n', 'IndicesMorfologicos_{}.qm'.format(locale))
if os.path.exists(locale_path):
self.translator = QTranslator()
self.translator.load(locale_path)
QCoreApplication.installTranslator(self.translator)
self.actions = []
self.menu = 'Índices Morfológicos'
def initGui(self):
# Icono principal
icon_path = os.path.join(self.plugin_dir, 'icon.png')
# Acción para calcular elongación
self.action_elongacion = QAction(QIcon(icon_path), 'Calcular Elongación', self.iface.mainWindow())
self.action_elongacion.triggered.connect(self.run_elongacion)
self.iface.addPluginToMenu(self.menu, self.action_elongacion)
self.actions.append(self.action_elongacion)
# Acción para calcular gradiente
self.action_gradiente = QAction(QIcon(icon_path), 'Calcular Gradiente', self.iface.mainWindow())
self.action_gradiente.triggered.connect(self.run_gradiente)
self.iface.addPluginToMenu(self.menu, self.action_gradiente)
self.actions.append(self.action_gradiente)
# Acción para mostrar información "Acerca de"
self.action_about = QAction(QIcon(icon_path), 'Acerca de', self.iface.mainWindow())
self.action_about.triggered.connect(self.show_about)
self.iface.addPluginToMenu(self.menu, self.action_about)
self.actions.append(self.action_about)
def tr(self, string):
"""Método para traducir textos"""
return QCoreApplication.translate('IndicesMorfologicosPlugin', string)
def unload(self):
# Quitar acciones del menú de complementos
for action in self.actions:
self.iface.removePluginMenu(self.menu, action)
self.iface.removeToolBarIcon(action)
def run_elongacion(self):
# Ejecutar el algoritmo de elongación
processing.execAlgorithmDialog(ELONGACION_ALGORITHM, {})
def run_gradiente(self):
# Ejecutar el algoritmo de gradiente
processing.execAlgorithmDialog(GRADIENTE_ALGORITHM, {})
def show_about(self):
# Mostrar el diálogo "Acerca de"
dlg = AboutDialog()
dlg.exec_()