Rimuovi "Salva con nome" dal menu contestuale di QGIS usando PyQGIS [chiuso]


9

Voglio rimuovere un'opzione esistente ("Salva con nome") dal menu di scelta rapida del livello QGIS, ciò che ho trovato finora è aggiungere una nuova azione LegendItemso sovrascrivere completamente con nuove opzioni. Ma non sono riuscito a trovare alcuna opzione utilizzando che sarei in grado di rimuovere un'opzione di menu contestuale predefinita esistente.

Quello che ho visto anche che è disponibile il metodo menuProvider () , ma non è stato possibile ottenere alcun dettaglio con questo metodo.

Come posso rimuovere l'opzione "Salva con nome" esistente dal menu contestuale di QGIS?


per rimuovere tutte le opzioni e aggiungere un'opzione
Fran Raga

L'ho già visto, ciò che sto cercando è rimuovere solo un'azione del menu contestuale esistente.
Ahsan Mukhtar l'

Faccio una bozza solo lavorando il primo clic, penso che qualsiasi azione non sia possibile eliminata. Puoi replicare questo contesto Menù, ma non tutte le azioni hanno il metodo Python in QGIS Api
Fran Raga,

1
Come posso replicare tutte le azioni predefinite?
Ahsan Mukhtar l'

Risposte:


1

È necessario sostituire il menu di scelta rapida corrente, utilizzando la classe personalizzata

Codice di esempio minimo per rimuovere l' opzione " Esporta "

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

Menu "Impostazioni" => "Personalizzazione interfaccia" nei menu / mProjectMenu disabilita mActionSaveProjectAs


1
Questa è l'opzione per disabilitare il progetto QGIS, ma non il livello, vero?
Ahsan Mukhtar il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.