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 

_______________________________________________
QGIS-User mailing list
QGIS-User@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to