def initGui(self): self.toolbar = self.iface.addToolBar("Preview Mode Toolbar") modes = [{ 'name': 'Normal', 'effect': -1 }, { 'name': 'Grayscale', 'effect': QgsPreviewEffect.PreviewGrayscale }, { 'name': 'Mono', 'effect': QgsPreviewEffect.PreviewMono }, { 'name': 'Protanope', 'effect': QgsPreviewEffect.PreviewProtanope }, { 'name': 'Deuteranope', 'effect': QgsPreviewEffect.PreviewDeuteranope }] for mode in modes: icon = QIcon( os.path.join(self.plugin_dir, 'icon_{}.svg'.format(mode['name'].lower()))) action = QAction(icon, mode['name'], self.iface.mainWindow()) action.preview_effect = mode['effect'] action.triggered.connect(partial(self.setPreviewMode, action)) self.toolbar.addAction(action) self.actions.append(action)