Видаліть "Зберегти як" з контекстного меню QGIS за допомогою PyQGIS [закрито]


8

Я хочу видалити існуючу опцію ("Зберегти як") з контекстного меню шару QGIS, що я виявив до цього, - додати нові дії до LegendItemsабо повністю перезаписати нові параметри. Але не вдалося знайти жодного варіанта, використовуючи який я зможу видалити існуючу опцію контекстного меню за замовчуванням.

Що я також бачив, що існує метод menuProvider () , але не вдалося отримати детальну інформацію про цей метод.

Як я можу видалити існуючу опцію "Зберегти як" з контекстного меню QGIS?


щоб видалити всі параметри та додати спеціальні параметри, перевірте це: gis.stackexchange.com/a/250170/49538
Fran Raga

Я вже бачив, що я шукаю лише видалити одну дію з контекстного меню.
Ахсан Мухтар

Я складаю чернетку лише працюючи в перший клік, я вважаю, що будь-які дії неможливо видалити. Ви скандуюєте цей контекст Меню, але не всі дії мають метод python у QGIS Api
Fran Raga

1
Як я можу повторити всі дії за замовчуванням?
Ахсан Мухтар

Перевірте цей приклад github.com/valheran/QDriller/blob/… та qgis.org/api/2.18/classQgsLayerTreeViewDefaultActions.html, але не всі дії мають метод
Fran Raga

Відповіді:


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

Перейдіть до "Налаштування => Настроювання інтерфейсу" та відключіть "mActionSaveProjectAs" у "Меню / mProjectMenu".


1
Це варіант відключення проекту QGIS, але не шар, це?
Ахсан Мухтар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.