QGIS permite agregar acciones que se activan cuando el usuario interactúa con una capa determinada, ya sea en el lienzo o en la tabla de atributos.
Las acciones se pueden definir de varias maneras, una de ellas es con el uso de código Python.
Para agregar una acción, abra las propiedades de la capa y luego vaya a la
pestaña Acciones.
Trabajaremos con la capa de "Mapa del mundo" para este ejemplo.
Agregaremos una acción que tomará el valor de un campo determinado (en este
caso un campo llamado NAME donde se almacena el nombre del país)
y abrirá la página de Wikipedia correspondiente a ese valor.
Si dicha página no existe, se mostrará un mensaje de error.
En la pestaña de acciones, cree una nueva acción haciendo clic en el signo +.
En el cuadro de diálogo que aparecerá, pegue el siguiente código.
import urllib
import webbrowser
from qgis.PyQt import QtWidgets
'''
Esta acción se debe utilizar con una capa vectorial que contiene un campo
llamado 'wikipedia'.
Cuando el usuario activa la acción, se abrirá un navegador que muestra la
entrada de wikipedia correspondiente al valor de ese campo.
Aquí usamos el valor del campo 'NAME' para componer la URL.
Usamos la notación de expresiones y la cadena [%NAME%] se reemplazará
con el valor del campo 'NAME' antes de que se ejecute el código.
'''
url = "https://en.wikipedia.org/wiki/" + "[%NAME%]"
try:
response = urllib.request.urlopen(url)
webbrowser.open(url, new=0, autoraise=True)
except:
QtWidgets.QMessageBox.warning( None,
"Valor incorrecto",
"La página de Wikipedia correspondiente no existe")
Ingresa un nombre y marca la casilla Objeto espacial y Campo, de modo que la
acción esté disponible cuando estemos explorando la tabla de atributos.
Una vez que se define la acción, cierra el diálogo y luego cierra el diálogo de propiedades.
Ahora ve a la tabla de atributos y haz clic en una fila de función para seleccionarla.
Haz clic derecho y verás la acción que acabamos de crear, disponible como una entrada de menú.
Haz clic en ella para ejecutarla y la página de Wikipedia correspondiente se abrirá en tu navegador predeterminado.