Remova “Salvar como” do menu de contexto QGIS usando PyQGIS [fechado]


9

Quero remover uma opção existente ("Salvar como") do menu de contexto da camada QGIS, o que encontrei até agora é adicionar uma nova ação LegendItemsou substituir completamente por novas opções. Mas não consegui encontrar nenhuma opção usando isso, eu seria capaz de remover uma opção de menu de contexto padrão existente.

O que também vi é que existe o método menuProvider () disponível, mas não foi possível obter detalhes com esse método.

Como posso remover a opção "Salvar como" existente no menu de contexto do QGIS?


para remover todas as opções e adicionar opções personalizadas verificar isso: gis.stackexchange.com/a/250170/49538
Fran Raga

Eu já vi isso, o que estou procurando é remover apenas uma ação do menu de contexto existente.
Ahsan Mukhtar

Eu faço um rascunho apenas trabalhando no primeiro clique, acho que nenhuma ação é possível excluída. Você pode replicar esse contextMenu, mas nem todas as ações têm o método python no QGIS Api
Fran Raga

11
Como posso replicar todas as ações padrão?
Ahsan Mukhtar

Respostas:


1

Você precisa substituir o menu de contexto atual, usando sua classe personalizada

Código de amostra mínimo para remover a opção " 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

Menu "Configurações" => "Personalização da interface" nos menus / mProjectMenu desativar mActionSaveProjectAs


11
Essa é a opção para desativar o projeto do QGIS, mas não a camada, é isso?
Ahsan Mukhtar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.