Eliminar "Guardar como" del menú contextual de QGIS usando PyQGIS [cerrado]


9

Quiero eliminar una opción existente ("Guardar como") del menú contextual de la capa QGIS, lo que he encontrado hasta ahora es agregar una nueva acción LegendItemso sobrescribir completamente con nuevas opciones. Pero no pude encontrar ninguna opción usando eso, podría eliminar una opción de menú contextual predeterminada existente.

Lo que también he visto es que hay un método menuProvider () disponible, pero no se pudieron obtener detalles con este método.

¿Cómo puedo eliminar la opción existente "Guardar como" del menú contextual de QGIS?


para eliminar todas las opciones y agregar opciones personalizadas, verifique esto: gis.stackexchange.com/a/250170/49538
Fran Raga

Ya he visto eso, lo que estoy buscando es eliminar solo una acción del menú contextual existente.
Ahsan Mukhtar

Hago un borrador solo con el primer clic, creo que no se puede eliminar ninguna acción. Puede replicar este contexto Menú, pero no todas las acciones tienen el método python en QGIS Api
Fran Raga

1
¿Cómo puedo replicar todas las acciones predeterminadas?
Ahsan Mukhtar

Respuestas:


1

Debe anular el menú contextual actual, utilizando su clase personalizada

Código de muestra mínimo para eliminar la opción " Exportar "

from qgis.gui import QgsLayerTreeViewMenuProvider

ltv = iface.layerTreeView()
mp=ltv.menuProvider()
cm = mp.createContextMenu()

for action in cm.actions():
    # Need text value ,this object not have ObjectName
    if action.text() == "Exportar":
        cm.removeAction(action);
    #print (action.objectName())

class CustomMenuProvider(QgsLayerTreeViewMenuProvider):

  def __init__(self, view, actions):
    QgsLayerTreeViewMenuProvider.__init__(self)
    self.view = view
    self.defaultActions = actions

  def createContextMenu(self):
    if not self.view.currentLayer():
      return None
    m = QMenu()
    m.addActions(self.defaultActions)
    return m


provider = CustomMenuProvider(ltv, cm.actions())
ltv.setMenuProvider(provider)

-1

Menú "Configuración" => "Personalización de interfaz" en los menús / mProjectMenu deshabilitar mActionSaveProjectAs


1
Esa es la opción para deshabilitar el proyecto de QGIS, pero no la capa, ¿es eso?
Ahsan Mukhtar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.