Hapus "Simpan Sebagai" dari Menu Konteks QGIS Menggunakan PyQGIS [ditutup]


9

Saya ingin menghapus opsi yang ada ("Save As") dari menu konteks layer QGIS, yang saya temukan sejauh ini adalah, untuk menambahkan tindakan baru di LegendItems, atau menimpa sepenuhnya dengan opsi baru. Tetapi tidak dapat menemukan opsi apa pun yang menggunakan itu saya akan dapat menghapus opsi menu Konteks standar yang ada.

Apa yang saya juga lihat ada metode menuProvider () , tetapi tidak bisa mendapatkan rincian dengan metode ini.

Bagaimana saya bisa menghapus opsi "Simpan Sebagai" yang ada dari menu konteks QGIS?


untuk menghapus semua opsi dan menambahkan opsi kustom, periksa ini: gis.stackexchange.com/a/250170/49538
Fran Raga

Saya sudah melihat bahwa, apa yang saya cari adalah menghapus hanya satu tindakan dari menu Konteks yang ada.
Ahsan Mukhtar

Saya membuat konsep dengan hanya bekerja dengan klik pertama, saya pikir tindakan apa pun tidak mungkin dihapus. Anda dapat meniru konteks ini, tapi tidak semua tindakan memiliki metode python di QGIS Api
Fran Raga

1
Bagaimana saya bisa meniru semua Tindakan default?
Ahsan Mukhtar

Jawaban:


1

Anda perlu mengganti Menu konteks saat ini, menggunakan kelas khusus Anda

Kode sampel minimal untuk menghapus Opsi " Ekspor "

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 "Pengaturan" => "Kustomisasi Antarmuka" di Menu / mProjectMenu nonaktifkan mActionSaveProjectAs


1
Itu adalah opsi untuk menonaktifkan proyek QGIS, tetapi bukan layer, kan?
Ahsan Mukhtar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.