从 QGIS 工具栏菜单中删除工具栏

Remove Toolbar from QGIS Toolbars Menu

我想知道如何在 PyQGIS 中完全删除工具栏,这样工具栏不仅在工具栏区域不再可见,而且也不再列在视图菜单(视图 > 工具栏)或右键单击工具栏区域时。

使用 iface.mainWindow().removeToolBar(toolbar) 从主 window 工具栏区域删除工具栏非常容易。这也会将其从右键单击工具栏区域时显示的列表中删除。但是,它不会从 View/Toolbar 菜单中删除工具栏。

toolbar = QToolBar('Test Toolbar')
# Add to main window & to 'View' menu
iface.addToolBar(toolbar)
# Remove from main window
iface.mainWindow().removeToolBar(toolbar)
# 'Test toolbar' is still visible in 'View' menu

如何才能使工具栏不再可从 UI 访问?

在工具栏对象上调用 deleteLater() 安排删除它,并从 view -> toolbars 菜单中完全删除它。请注意,此后您将无法进一步使用工具栏,例如使用 iface.addToolBar(toolbar) 重新添加将不起作用。

toolbar = QToolBar('Test Toolbar')
# Add to main window & to 'View' menu
iface.addToolBar(toolbar)
# Remove from main window & 'View' menu
toolbar.deleteLater()