PyQGIS Kullanarak QGIS Bağlam Menüsünden “Farklı Kaydet” seçeneğini kaldırın [kapalı]


8

Mevcut bir seçeneği ("Farklı Kaydet") QGIS katmanının bağlam menüsünden kaldırmak, şimdiye kadar bulduğum şey, yeni eylem eklemek LegendItemsveya tamamen yeni seçeneklerle üzerine yazmak istiyorum. Ancak bunu kullanarak herhangi bir seçenek bulamadım, var olan bir varsayılan İçerik menüsü seçeneğini kaldırabileceğim.

Ne de menuProvider () yöntemi kullanılabilir olduğunu gördüm , ancak bu yöntemle herhangi bir ayrıntı alamadım.

Mevcut "Farklı Kaydet" seçeneğini QGIS'in içerik menüsünden nasıl kaldırabilirim?


tüm seçenekleri kaldırmak ve özel bir seçenek eklemek için şunu kontrol edin: gis.stackexchange.com/a/250170/49538
Fran Raga

Zaten aradığım şey, mevcut Bağlam menüsünün yalnızca bir eylemini kaldırmak olduğunu gördüm.
Ahsan Mukhtar

Ben herhangi bir işlem deleted.You çoğaltmak cand bu contextMenu durum değildir, ancak tüm eylem QGIS Api içinde piton yöntemine sahip olduğunu düşünüyorum, sadece bir taslak ilk tıklamayı çalışması
Fran Raga

1
Tüm varsayılan İşlemleri nasıl çoğaltabilirim?
Ahsan Mukhtar

Yanıtlar:


2

Özel sınıfınızı kullanarak geçerli bağlam Menüsünü geçersiz kılmanız gerekir

" Dışa Aktar " seçeneğini kaldırmak için en az örnek kod

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

"Ayarlar => Arayüz Özelleştirmesi" ne gidin ve "Menüler / mProjectMenu" da "mActionSaveProjectAs" seçeneğini devre dışı bırakın.


1
Bu, QGIS'in projesini devre dışı bırakma seçeneği, ancak katman değil mi?
Ahsan Mukhtar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.