[Qgis-user] Add context menu to map canvas
Christoph Jung
jagodki.cj at gmail.com
Tue Aug 1 07:17:45 PDT 2023
Hello everyone,
I try to add a new entry to the map canvas context menu using the following two documentations:
https://docs.qgis.org/3.28/en/docs/pyqgis_developer_cookbook/canvas.html#add-items-to-map-canvas-contextual-menu
https://github.com/qgis/QGIS-Documentation/issues/5842
Adding a new menu entry from the python console works like a charm. Now I want to provide the context menu through a plugin. But I am not able to connect the context menu with a signal declared as a function in the same class, where I want to connect it. I receive the message, that my plugin class has no method „addMenu“. This is my code snippet:
from qgis.PyQt.QtWidgets import QMenu
from qgis.gui import QgsMapMouseEvent
import json
class SmallworldShortcutPlugin:
def __init__(self, iface):
self.iface = iface
self.canvas = self.iface.mapCanvas()
self.canvas.contextMenuAboutToShow.connect(self.populateContextMenu)
The function populateContextMenu is the same as in the documentation. But if I declare the function outside of the class in the same python file, it works very well (of course without calling the function on self). Does anybody has a hint for me how to connect the map canvas context menu with a function from a class? Or is it the right way to declare the function to be connected with the context menu outside of a class?
Best regards,
Christoph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20230801/7ab5492a/attachment.htm>
More information about the QGIS-User
mailing list