PyGGIS का उपयोग करके QGIS प्रसंग मेनू से "इस रूप में सहेजें" को बंद करें [बंद]


8

मैं QGIS परत के संदर्भ मेनू से एक मौजूदा विकल्प ("इस रूप में सहेजें") को हटाना चाहता हूं, जो मैंने अब तक पाया है, वह LegendItemsनए विकल्पों को जोड़ने या नए विकल्पों के साथ पूरी तरह से अधिलेखित करने के लिए है। लेकिन किसी भी विकल्प का उपयोग नहीं कर पाया कि मैं एक मौजूदा डिफ़ॉल्ट संदर्भ मेनू विकल्प को हटा पाऊंगा।

मैंने यह भी देखा है कि मेनूप्रोवाइडर () विधि उपलब्ध है, लेकिन इस पद्धति के साथ कोई विवरण नहीं मिल सका।

मैं QGIS के संदर्भ मेनू से मौजूदा "सेव एज़" विकल्प को कैसे हटा सकता हूं?


सभी विकल्पों को हटाने और एक कस्टम विकल्प जोड़ने के लिए इसे देखें: gis.stackexchange.com/a/250170/49538
Fran Raga

मैं पहले ही देख चुका हूं कि जो चीज दिख रही है, वह मौजूदा कॉन्टेक्स्ट मेनू की केवल एक कार्रवाई को हटाने के लिए है।
अहसन मुख्तार

मैं केवल द्वारा एक मसौदा पहले क्लिक काम करने, मुझे लगता है कि किसी भी कार्रवाई में posible deleted.You cand दोहराने इस ContextMenu नहीं है, लेकिन सभी कार्रवाई QGIS एपीआई में अजगर विधि है
फ्रान राग

1
मैं सभी डिफ़ॉल्ट क्रियाओं को कैसे दोहरा सकता हूं?
अहसान मुख्तार

इस उदाहरण की जाँच करें github.com/valheran/QDriller/blob/… और qgis.org/api/2.18/classQgsLayerTreeViewDefaultActions.html लेकिन सभी क्रियाओं में विधि नहीं है
राग

जवाबों:


2

आपको अपने कस्टम वर्ग का उपयोग करके वर्तमान संदर्भ मेनू को ओवरराइड करने की आवश्यकता है

" निर्यात " विकल्प को हटाने के लिए न्यूनतम नमूना कोड

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

"सेटिंग्स => इंटरफ़ेस अनुकूलन" नेविगेट करें और "मेनू / mProjectMenu" में "mActionSaveProjectAs" को अक्षम करें।


1
यह QGIS की परियोजना को निष्क्रिय करने का विकल्प है, लेकिन परत नहीं है, यह है?
अहसान मुख्तार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.