def initGui(self): """Initalise the Plugin-UI""" if not pyratImport: iface.messageBar().pushMessage("PyRAT not found!", level=Qgis.Critical) return if 'PyRAT' not in [ action.text() for action in iface.mainWindow().menuBar().actions() ]: self.pyratMenu = iface.mainWindow().menuBar().addMenu('PyRAT') else: self.pyratMenu = [ action.menu() for action in iface.mainWindow().menuBar().actions() if action.text() == 'PyRAT' ][0] action = QAction("Layer2PyRAT", iface.mainWindow()) action.triggered.connect(PyRATBridge.layerToPyrat) self.pyratMenu.addAction(action) action = QAction("PyRAT2Layer", iface.mainWindow()) action.triggered.connect(PyRATBridge.pyratToLayer) self.pyratMenu.addAction(action) action = QAction("Cleanup PyRAT", iface.mainWindow()) action.triggered.connect(PyRATBridge.clearPyRAT) self.pyratMenu.addAction(action) action = QAction("Show PyRAT GUI", iface.mainWindow()) action.triggered.connect(self.showPyrat) self.pyratMenu.addAction(action) self.pyratMenu.addSeparator() # Init PyRAT-Tools, adapted from pyrat.viewer for qgis from inspect import getmembers, isclass modules = [ pyrat.load, pyrat.save, pyrat.transform, pyrat.filter, pyrat.polar, pyrat.insar, pyrat.plugins, pyrat.viewer ] for current_module in modules: modules = getmembers(current_module, isclass) for mod in modules: if issubclass(mod[1], pyrat.Worker): plugin = mod[1] if (hasattr(plugin, 'gui') and plugin.gui['entry'] != "Python console"): self.addMenuEntry(plugin) self.pyratLayerTree = QDockWidget("PyRAT Layers", iface.mainWindow()) PyRATBridge.layerTreeWidget = LayerTreeWidget( parent=self.pyratLayerTree, viewer=ViewerToQGISInterface) self.pyratLayerTree.setObjectName("PyRAT Layers") self.pyratLayerTree.setWidget(PyRATBridge.layerTreeWidget) iface.addDockWidget(Qt.LeftDockWidgetArea, self.pyratLayerTree)
def animateWfsLayer(layer, field): global animationWidget if animationWidget is None: animationWidget = animationWidgetInstance iface.addDockWidget(QtCore.Qt.TopDockWidgetArea, animationWidget) animationWidget.setVisible(True) animationWidget.setVectorLayer(layer, field)
def animateWmsLayer(layer, timeValues): global animationWidget if animationWidget is None: animationWidget = animationWidgetInstance iface.addDockWidget(QtCore.Qt.TopDockWidgetArea, animationWidget) animationWidget.setVisible(True) animationWidget.setRasterLayer(layer, timeValues)
def __init__(self, parent): super().__init__(parent) self.dockwidget = PRGDockWidget() iface.addDockWidget(Qt.RightDockWidgetArea, self.dockwidget) self.dockwidget.hide() self.action = self.parent.add_action( ':/plugins/gissupport_plugin/prg/prg.svg', self.module_name, callback=lambda state: self.dockwidget.setHidden(not state), parent=iface.mainWindow(), checkable=True, add_to_topmenu=True) self.populate_dockwidget_comboboxes() self.task = None self.manager = QgsApplication.taskManager() self.dockwidget.entity_type_combobox.currentTextChanged.connect( self.handle_entity_type_changed) self.dockwidget.entity_division_combobox.currentTextChanged.connect( self.handle_entity_division_changed) self.dockwidget.btn_download.clicked.connect(self.download_prg) self.dockwidget.filter_line_edit.textChanged.connect( self.filter_name_combobox)
def execDialog(self): """ """ self.dialog = PluginDialog(self.iface, self.iface.mainWindow()) #self.dialog.setModal(False) #self.act.setEnabled(False) iface.addDockWidget(Qt.BottomDockWidgetArea, self.dialog) self.dialog.ClosingSignal.connect(self.quitDialog)
def _get_widget_instance(): global dockwidget_instance if dockwidget_instance is None: dockwidget_instance = PlanetExplorerDockWidget( parent=iface.mainWindow(), iface=iface) dockwidget_instance.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) iface.addDockWidget(Qt.RightDockWidgetArea, dockwidget_instance) dockwidget_instance.hide() return dockwidget_instance
def _get_widget_instance(): global dockwidget_instance if dockwidget_instance is None: if not PlanetClient.getInstance().has_api_key(): return None dockwidget_instance = TaskingDockWidget(parent=iface.mainWindow()) dockwidget_instance.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) iface.addDockWidget(Qt.LeftDockWidgetArea, dockwidget_instance) dockwidget_instance.hide() return dockwidget_instance
def __init__(self, parent=None): super(AnimationFrame, self).__init__(parent) self.parent = parent self.animationUI = Animation_menu.Ui_dockAnimationWidget() self.animationUI.setupUi(self) if iface and not iface.mainWindow().restoreDockWidget(self): iface.mainWindow().addDockWidget(Qt.RightDockWidgetArea, self) self.mapObject = None self.addLayerMenu = None self.animationUI.progressBar.hide() self.animationUI.labelInfo.setText("") self.animationUI.animationSlider.sliderMoved.connect( self.onUserMovesSlider) #We disable controller to avoid accidental inputs self.animationUI.labelInfo.setEnabled(True) #self.animationUI.animationSlider.setEnabled(False) #self.animationUI.playButton.setEnabled(False) self.animationUI.cancelButton.hide() self.animationUI.addWCSButton.clicked.connect( self._onAddWCSLayerButtonClicked) self.animationUI.addWMSButton.clicked.connect( self._onAddWMSLayerButtonClicked) self.animationUI.addOtherButton.clicked.connect( self._onAddOtherLayerButtonClicked) self.animationUI.removeButton.clicked.connect( self._removeLayerFromAnimation) self.animationUI.cancelButton.clicked.connect(self._onCancelRequested) self.animationUI.playButton.clicked.connect(self.play) self.animationUI.buttonLoad.clicked.connect(self.prepareAnimation) self.layerInfoList = [] self.animationUI.frameRateSpinbox.valueChanged.connect( self._newFrameRateSelected) self.animationUI.timeFrameVariation.timeChanged.connect( self._timeVariationChanged) self.animationUI.daysFrameVariation.valueChanged.connect( self._timeVariationChanged) self.animationUI.timeTolerance.timeChanged.connect( self._toleranceChanged) self.animationUI.daysTolerance.valueChanged.connect( self._toleranceChanged) self.initController() self.animationUI.timeFrameVariation.setTime(QTime(1, 0, 0)) self._timeVariationChanged(QTime(1, 0, 0)) iface.addDockWidget(Qt.LeftDockWidgetArea, self)
def _openNavigator(empty=False, group="Lesson repos"): if empty: repository.repos = [] repository.repoEndpoints = {} repository.availableRepoEndpoints = {} else: repository.repos = [_lastRepo] if _lastRepo else [] repository.availableRepoEndpoints = {group: REPOS_SERVER_URL} repository.repoEndpoints = {group: REPOS_SERVER_URL} action = navigatorInstance.toggleViewAction() if not action.isChecked(): iface.addDockWidget(Qt.RightDockWidgetArea, navigatorInstance) action.trigger() action.trigger() navigatorInstance.updateNavigator() navigatorInstance.fillTree()
def __init__(self, parent): super().__init__(parent) self.dockwidget = GugikNmtDockWidget() iface.addDockWidget(Qt.RightDockWidgetArea, self.dockwidget) self.gugik_nmt_action = self.parent.add_action( ":/plugins/gissupport_plugin/gugik_nmt/nmt.svg", text="GUGiK NMT", callback=lambda state: self.dockwidget.setHidden(not state), checkable=True, parent=iface.mainWindow(), add_to_topmenu=True) self.dockwidget.visibilityChanged.connect( self.gugik_nmt_action.setChecked) self.dockwidget.hide()
def _openNavigator(empty = False, group = "Lesson repos"): if empty: repository.repos = [] repository.repoEndpoints = {} repository.availableRepoEndpoints = {} else: repository.repos = [_lastRepo] if _lastRepo else [] repository.availableRepoEndpoints = {group:REPOS_SERVER_URL} repository.repoEndpoints = {group:REPOS_SERVER_URL} action = navigatorInstance.toggleViewAction() if not action.isChecked(): iface.addDockWidget(Qt.RightDockWidgetArea, navigatorInstance) action.trigger() action.trigger() navigatorInstance.updateNavigator() navigatorInstance.fillTree()
def initGui(self): ''' Here wew add the main menu entry, used to enable the map tool to capture coordinates ''' mapToolIcon = QIcon( os.path.join(os.path.dirname(__file__), "icons", "w3w.png")) self.toolAction = QAction(mapToolIcon, "what3words map tool", iface.mainWindow()) self.toolAction.triggered.connect(self.setTool) #checkable = true, so it indicates whether the maptool is active or not self.toolAction.setCheckable(True) iface.addToolBarIcon(self.toolAction) iface.addPluginToMenu("what3words", self.toolAction) '''And here we add another tool to zoom to a w3w address''' zoomToIcon = QIcon(':/images/themes/default/mActionZoomIn.svg') self.zoomToAction = QAction(zoomToIcon, "Zoom to 3 word address", iface.mainWindow()) self.zoomToAction.triggered.connect(self.zoomTo) iface.addPluginToMenu("what3words", self.zoomToAction) #Standard plugin menus provided by the qgiscommons library addSettingsMenu("what3words", iface.addPluginToMenu) addHelpMenu("what3words", iface.addPluginToMenu) addAboutMenu("what3words", iface.addPluginToMenu) ''' This plugin uses a maptool. When another maptool is selected, our plugin maptool will be disconnected, and we need to update the menu entry, so it does not show itself as enabled. When the new tool is set, it will fire a signal. We connect it to our unsetTool method, which will handle this. ''' iface.mapCanvas().mapToolSet.connect(self.unsetTool) ''' We use a docked widget. We create it here and hide it, so when it is called by the user, it is just set to visible and will be displayed in its corresponding location in the app window. ''' self.zoomToDialog = W3WCoordInputDialog(iface.mapCanvas(), iface.mainWindow()) iface.addDockWidget(Qt.TopDockWidgetArea, self.zoomToDialog) self.zoomToDialog.hide() '''Add the Processing provider if Processing is availabel and loaded''' if processingOk: Processing.addProvider(self.provider)
def _openNavigator(empty = False, group = "test", repos = None): if empty: repository.repos = [] repository.repoEndpoints = {} repository.availableRepoEndpoints = {} else: if repos is None: repos = [tests._lastRepo] repository.repos = repos repository.availableRepoEndpoints = {group:conf['REPOS_SERVER_URL']} repository.repoEndpoints = {group:conf['REPOS_SERVER_URL']} action = navigatorInstance.toggleViewAction() if not action.isChecked(): iface.addDockWidget(Qt.RightDockWidgetArea, navigatorInstance) action.trigger() action.trigger() navigatorInstance.updateNavigator()
def _openNavigator(empty = False, group = "test"): if empty: repository.repos = [] repository.repoEndpoints = {} repository.availableRepoEndpoints = {} else: repository.repos = [tests._lastRepo] repository.availableRepoEndpoints = {group:conf['REPOS_SERVER_URL']} repository.repoEndpoints = {group:conf['REPOS_SERVER_URL']} action = navigatorInstance.toggleViewAction() if not action.isChecked(): iface.addDockWidget(Qt.RightDockWidgetArea, navigatorInstance) action.trigger() action.trigger() navigatorInstance.fillTree() navigatorInstance.updateCurrentRepo(None) navigatorInstance.checkButtons()
def __init__(self, parent = None): super(AnimationFrame, self).__init__(parent) self.parent = parent self.animationUI = Animation_menu.Ui_dockAnimationWidget() self.animationUI.setupUi(self) if iface and not iface.mainWindow().restoreDockWidget(self): iface.mainWindow().addDockWidget(Qt.RightDockWidgetArea, self) self.mapObject = None self.addLayerMenu = None self.animationUI.progressBar.hide() self.animationUI.labelInfo.setText("") self.animationUI.animationSlider.sliderMoved.connect(self.onUserMovesSlider) #We disable controller to avoid accidental inputs self.animationUI.labelInfo.setEnabled(True) #self.animationUI.animationSlider.setEnabled(False) #self.animationUI.playButton.setEnabled(False) self.animationUI.cancelButton.hide() self.animationUI.addWCSButton.clicked.connect(self._onAddWCSLayerButtonClicked) self.animationUI.addWMSButton.clicked.connect(self._onAddWMSLayerButtonClicked) self.animationUI.addOtherButton.clicked.connect(self._onAddOtherLayerButtonClicked) self.animationUI.removeButton.clicked.connect(self._removeLayerFromAnimation) self.animationUI.cancelButton.clicked.connect(self._onCancelRequested) self.animationUI.playButton.clicked.connect(self.play) self.animationUI.buttonLoad.clicked.connect(self.prepareAnimation) self.layerInfoList = [] self.animationUI.frameRateSpinbox.valueChanged.connect(self._newFrameRateSelected) self.animationUI.timeFrameVariation.timeChanged.connect(self._timeVariationChanged) self.animationUI.daysFrameVariation.valueChanged.connect(self._timeVariationChanged) self.animationUI.timeTolerance.timeChanged.connect(self._toleranceChanged) self.animationUI.daysTolerance.valueChanged.connect(self._toleranceChanged) self.initController() self.animationUI.timeFrameVariation.setTime(QTime(1, 0, 0)) self._timeVariationChanged(QTime(1, 0, 0)) iface.addDockWidget( Qt.LeftDockWidgetArea, self )
def run(self): """Specific stuff at tool activating.""" self.ui.setWindowModality(2) iface.addDockWidget(Qt.AllDockWidgetAreas, self.ui) btn = self.ui.findChildren(QPushButton) for b in btn: try: b.clicked.disconnect() except: pass p = partial(self.select_file, b.objectName()[0:-4]) b.clicked.connect(p) valid_b = self.ui.findChild(QPushButton, "valid_btn") try: valid_b.clicked.disconnect() except: pass valid_b.clicked.connect(self.valid)
def initGui(self): """ Build the plugin GUI. """ self.initProcessing() icon = QIcon(resources_path('icons', 'icon.png')) # Open the online help self.help_action = QAction(icon, 'PgMetadata', iface.mainWindow()) iface.pluginHelpMenu().addAction(self.help_action) self.help_action.triggered.connect(self.open_help) if not self.dock: self.dock = PgMetadataDock() iface.addDockWidget(Qt.RightDockWidgetArea, self.dock) # Open/close the dock from plugin menu self.dock_action = QAction(icon, 'PgMetadata', iface.mainWindow()) iface.pluginMenu().addAction(self.dock_action) self.dock_action.triggered.connect(self.open_dock) if not self.locator_filter: self.locator_filter = LocatorFilter(iface) iface.registerLocatorFilter(self.locator_filter)
def run(self): self.ui.setWindowModality(2) iface.addDockWidget(Qt.AllDockWidgetAreas, self.ui) btn = [self.ui.findChild(QPushButton, c + '_btn') for c in self.catalog] line_edt = [self.ui.findChild(QLineEdit, c) for c in self.catalog] for l in line_edt: s = QSettings() cat = s.value('catalogs') if cat: l.setText(cat.get(l.objectName())) for b in btn: try: b.clicked.disconnect() except: pass p = partial(self.select_file, b.objectName()[0:-4]) b.clicked.connect(p) valid_b = self.ui.findChild(QPushButton, 'valid_btn') try: valid_b.clicked.disconnect() except: pass valid_b.clicked.connect(self.valid)
def open(self): if self.mode == Qt.AllDockWidgetAreas: self.ui.setWindowModality(2) self.ui.setFeatures(QDockWidget.DockWidgetFloatable) iface.addDockWidget(self.mode, self.ui)
def run(self): """Run method that loads and starts the plugin""" if not iface.building_toolbar: # Set up toolbar iface.building_toolbar = QToolBar(u"Building Tools") iface.addToolBar(iface.building_toolbar, Qt.RightToolBarArea) # Create the dockwidget and dialog and keep reference if not self.dockwidget: self.dockwidget = BuildingsDockwidget() # Connect with close self.dockwidget.closed.connect(self.on_dockwidget_closed) # Show the dockwidget as a tab layerdock = iface.mainWindow().findChild(QDockWidget, "Layers") iface.addDockWidget(Qt.LeftDockWidgetArea, self.dockwidget) iface.mainWindow().tabifyDockWidget(layerdock, self.dockwidget) self.setup_main_toolbar() dw = self.dockwidget # no base layers self.menu_frame = MenuFrame(self.dockwidget) dw.insert_into_frames("menu_frame", self.menu_frame) home_dir = os.path.dirname(__file__) if dw.lst_options.item(0) is None: icon_path = os.path.join(home_dir, "icons", "buildings_plugin.png") item = QListWidgetItem("Buildings") item.setIcon(QIcon(icon_path)) dw.lst_options.addItem(item) dw.lst_options.setCurrentItem(item) icon_path = os.path.join(home_dir, "icons", "capture_source.png") item = QListWidgetItem("Capture Sources") item.setIcon(QIcon(icon_path)) dw.lst_sub_menu.addItem(item) icon_path = os.path.join(home_dir, "icons", "bulk_load.png") item = QListWidgetItem("Bulk Load") item.setIcon(QIcon(icon_path)) dw.lst_sub_menu.addItem(item) icon_path = os.path.join(home_dir, "icons", "edit.png") item = QListWidgetItem("Edit Outlines") item.setIcon(QIcon(icon_path)) dw.lst_sub_menu.addItem(item) icon_path = os.path.join(home_dir, "icons", "settings.png") item = QListWidgetItem("Settings") item.setIcon(QIcon(icon_path)) dw.lst_sub_menu.addItem(item) icon_path = os.path.join(home_dir, "icons", "reference.png") item = QListWidgetItem("Reference Data") item.setIcon(QIcon(icon_path)) dw.lst_sub_menu.addItem(item) canvas = iface.mapCanvas() selectedcrs = "EPSG:2193" target_crs = QgsCoordinateReferenceSystem() target_crs.createFromUserInput(selectedcrs) canvas.setDestinationCrs(target_crs) self.on_click() self.dockwidget.show() self.dockwidget.raise_()
def _startConectPlugin(): dock = getConnectDockWidget() iface.addDockWidget(Qt.RightDockWidgetArea, dock) dock.show() dock.showLogin()
# coding: utf-8 from PyQt4.QtCore import Qt from qgis.gui import QgsAdvancedDigitizingDockWidget from qgis.utils import iface canvas = iface.mapCanvas() dock = QgsAdvancedDigitizingDockWidget(canvas) iface.addDockWidget(Qt.RightDockWidgetArea, dock) iface.removeDockWidget(dock) # Access to the existing instance instead of the newly created one print(iface.cadDockWidget()) # Return QGIS existing instance of QgsAdvancedDigitizingDockWidget iface.cadDockWidget().show()
# coding: utf-8 from PyQt4.QtCore import Qt from qgis.core import QgsCoordinateReferenceSystem from qgis.gui import QgsUserInputDockWidget, QgsProjectionSelectionWidget from qgis.utils import iface projection_selection_widget = QgsProjectionSelectionWidget() projection_selection_widget.resize(400, 30) projection_selection_widget.setCrs(QgsCoordinateReferenceSystem('EPSG:4326')) user_input_dock_widget = QgsUserInputDockWidget() user_input_dock_widget.addUserInputWidget(projection_selection_widget) iface.addDockWidget(Qt.RightDockWidgetArea, user_input_dock_widget) # iface.removeDockWidget(user_input_dock_widget)
# coding: utf-8 from PyQt4.QtCore import Qt from qgis.gui import QgsAdvancedDigitizingDockWidget from qgis.utils import iface canvas = iface.mapCanvas() dock = QgsAdvancedDigitizingDockWidget(canvas) iface.addDockWidget(Qt.RightDockWidgetArea, dock) iface.removeDockWidget(dock) # Access to the existing instance instead of the newly created one print(iface.cadDockWidget() ) # Return QGIS existing instance of QgsAdvancedDigitizingDockWidget iface.cadDockWidget().show()
def __init__(self, parent): super().__init__(parent) self.canvas = iface.mapCanvas() self.dockwidget = wyszukiwarkaDzialekDockWidget() # self.menu = self.tr(PLUGIN_NAME) # self.toolbar = self.iface.addToolBar(PLUGIN_NAME) # self.toolbar.setObjectName(PLUGIN_NAME) self.teryt_search_result_collector = ResultCollectorSingle(self) self.map_point_search_result_collector = self.teryt_search_result_collector self.project = QgsProject.instance() self.wms_layer = None self.module_csv_import = None self.module_teryt_search = None self.module_layer_import = None self.module_wms_kieg_initialized = False self.module_map_point_search = MapPointSearch(self, self.teryt_search_result_collector) result_collector_factory = lambda parent, target_layer: ResultCollectorMultiple(self, target_layer) self.module_teryt_search = TerytSearch(self, self.dockwidget.tab_teryt_search_layout, self.teryt_search_result_collector, result_collector_factory, ResultCollectorMultiple.default_layer_factory) self.module_teryt_search.lpis_bbox_found.connect(self.add_wms_lpis) result_collector_factory = lambda parent, target_layer: ResultCollectorMultiple(self, target_layer) self.module_csv_import = CSVImport(self, self.dockwidget.tab_import_csv_layout, result_collector_factory, ResultCollectorMultiple.default_layer_factory) self.module_layer_import = LayerImport( self, self.dockwidget.tab_import_layer_layout) self.wms_kieg_layer = None self.dockwidget.button_wms_kieg.clicked.connect(self.add_wms_kieg) self.module_wms_kieg_initialized = True self.wms_lpis_layer = None self.dockwidget.button_wms_lpis.clicked.connect(self.add_wms_lpis) self.module_wms_lpis_initialized = True icon_info_path = ':/plugins/plugin/info.png' self.dockwidget.label_info_map_point_search.setPixmap(QPixmap(icon_info_path)) self.dockwidget.label_info_map_point_search.setToolTip(( "Wybierz narzędzie i kliknij na mapę.\n" "Narzędzie wyszuka działkę, w której zawierają się współrzędne kliknięcia.")) #Zarejestrowanie we wtyczce iface.addDockWidget(Qt.RightDockWidgetArea, self.dockwidget) self.uldk_toolbar_action = self.parent.add_action( ":/plugins/gissupport_plugin/uldk/uldk.svg", self.module_name, lambda state: self.dockwidget.setHidden(not state), checkable = True, parent = iface.mainWindow(), add_to_topmenu=True ) self.dockwidget.visibilityChanged.connect(self.uldk_toolbar_action.setChecked) self.identify_action = self.parent.add_action( ":/plugins/gissupport_plugin/uldk/uldk_identify.svg", text = "Identifykacja ULDK", callback = lambda toggle: iface.mapCanvas().setMapTool( self.module_map_point_search ), parent = iface.mainWindow(), checkable = True, add_to_topmenu=False ) self.module_map_point_search.setAction( self.identify_action ) self.parent.toolbar.addSeparator() self.dockwidget.btnIdentify.setDefaultAction(self.identify_action) self.dockwidget.hide()
def addDockWidget(self, dockWidget, side): if side == 'right': iface.addDockWidget(QtCore.Qt.RightDockWidgetArea, dockWidget) iface.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dockWidget)
def showDialog(self): iface.addDockWidget(QtCore.Qt.LeftDockWidgetArea, self)
def initGui(self): """Init the user interface.""" self.initProcessing() self.dock = RaepaDock() iface.addDockWidget(Qt.RightDockWidgetArea, self.dock)
def addDockWidget(self, dockWidget): iface.addDockWidget(QtCore.Qt.RightDockWidgetArea, dockWidget)