def initGui(self): self.toolbar = self.iface.addToolBar(self.tr('Vertex Tools')) self.toolbar.setObjectName('Vertex Tools') self.edit_vertices = QAction(self.get_icon("vertex.png"), self.tr("View / Edit Vertices"), self.iface.mainWindow()) self.edit_vertices.setCheckable(True) self.map_tool = SelectFeatureMapTool(self) self.map_tool.setAction(self.edit_vertices) self.show_snap_widget = QAction(self.get_icon("grid.png"), self.tr("Show/Hide Widget"), self.iface.mainWindow()) self.show_snap_widget.setCheckable(True) self.iface.addPluginToVectorMenu(self.tr('Vertex Tools'), self.show_snap_widget) self.iface.addPluginToVectorMenu(self.tr('Vertex Tools'), self.edit_vertices) self.toolbar.addActions([self.show_snap_widget, self.edit_vertices]) self.actions.append(self.show_snap_widget) self.actions.append(self.edit_vertices) self.snap_to_grid_widget = SnapToGridWidget(self) self.iface.addDockWidget(Qt.RightDockWidgetArea, self.snap_to_grid_widget) self.snap_to_grid_widget.visibilityChanged.connect(self.__snap_widget_visibilityChanged) self.snap_to_grid_widget.show() self.show_snap_widget.triggered.connect(self.__show_snap_widget)
class VertexToolsPlugin: def __init__(self, iface): self.iface = iface self.map_canvas = self.iface.mapCanvas() # initialize plugin directory self.plugin_dir = os.path.dirname(__file__) # initialize locale locale = QSettings().value('locale/userLocale')[0:2] locale_path = os.path.join(self.plugin_dir, 'i18n', 'vertex_tools_{}.qm'.format(locale)) if os.path.exists(locale_path): self.translator = QTranslator() self.translator.load(locale_path) if qVersion() > '4.3.3': QCoreApplication.installTranslator(self.translator) # Declare instance attributes self.toolbar = None self.show_snap_widget = None self.edit_vertices = None self.map_tool = None self.snap_to_grid_widget = None self.actions = [] def tr(self, message): return QCoreApplication.translate('VertexToolsPlugin', message) def get_icon(self, iconName): return QIcon(":vertex_tools/" + iconName) def initGui(self): self.toolbar = self.iface.addToolBar(self.tr('Vertex Tools')) self.toolbar.setObjectName('Vertex Tools') self.edit_vertices = QAction(self.get_icon("vertex.png"), self.tr("View / Edit Vertices"), self.iface.mainWindow()) self.edit_vertices.setCheckable(True) self.map_tool = SelectFeatureMapTool(self) self.map_tool.setAction(self.edit_vertices) self.show_snap_widget = QAction(self.get_icon("grid.png"), self.tr("Show/Hide Widget"), self.iface.mainWindow()) self.show_snap_widget.setCheckable(True) self.iface.addPluginToVectorMenu(self.tr('Vertex Tools'), self.show_snap_widget) self.iface.addPluginToVectorMenu(self.tr('Vertex Tools'), self.edit_vertices) self.toolbar.addActions([self.show_snap_widget, self.edit_vertices]) self.actions.append(self.show_snap_widget) self.actions.append(self.edit_vertices) self.snap_to_grid_widget = SnapToGridWidget(self) self.iface.addDockWidget(Qt.RightDockWidgetArea, self.snap_to_grid_widget) self.snap_to_grid_widget.visibilityChanged.connect(self.__snap_widget_visibilityChanged) self.snap_to_grid_widget.show() self.show_snap_widget.triggered.connect(self.__show_snap_widget) def unload(self): for action in self.actions: self.iface.removePluginVectorMenu(self.tr('Vertex Tools'), action) self.iface.removeToolBarIcon(action) # remove the toolbar del self.toolbar # remove widget self.iface.removeDockWidget(self.snap_to_grid_widget) del self.snap_to_grid_widget def __show_snap_widget(self): if self.snap_to_grid_widget.isVisible(): self.snap_to_grid_widget.hide() else: self.snap_to_grid_widget.show() def __snap_widget_visibilityChanged(self): if self.snap_to_grid_widget.isVisible(): self.show_snap_widget.setChecked(True) else: self.show_snap_widget.setChecked(False)