本文整理汇总了Python中qgis.gui.QgsMapToolEmitPoint.setAction方法的典型用法代码示例。如果您正苦于以下问题:Python QgsMapToolEmitPoint.setAction方法的具体用法?Python QgsMapToolEmitPoint.setAction怎么用?Python QgsMapToolEmitPoint.setAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.gui.QgsMapToolEmitPoint
的用法示例。
在下文中一共展示了QgsMapToolEmitPoint.setAction方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: EarthMineQGIS
# 需要导入模块: from qgis.gui import QgsMapToolEmitPoint [as 别名]
# 或者: from qgis.gui.QgsMapToolEmitPoint import setAction [as 别名]
class EarthMineQGIS(QObject):
"""QGIS Plugin Implementation."""
def __init__(self, iface):
"""Constructor.
:param iface: An interface instance that will be passed to this class
which provides the hook by which you can manipulate the QGIS
application at run time.
:type iface: QgsInterface
"""
# Save reference to the QGIS interface
super(EarthMineQGIS, self).__init__()
self.movingfeature = None
self.iface = iface
self.viewer = None
self.canvas = self.iface.mapCanvas()
self.settings = QSettings()
# 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", "EarthMineQGIS_{}.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)
self.pointtool = QgsMapToolEmitPoint(self.canvas)
self.pointtool.canvasClicked.connect(self.set_viewer_location)
self.settingsdialog = SettingsDialog(self.iface.mainWindow())
self.actions = []
self.menu = self.tr(u"&Earthmine")
self.toolbar = self.iface.addToolBar(u"EarthMineQGIS")
self.toolbar.setObjectName(u"EarthMineQGIS")
self.legend = self.iface.legendInterface()
emcolor = QColor(1, 150, 51)
self.tempband = QgsRubberBand(self.canvas, QGis.Line)
self.tempband.setWidth(5)
self.tempband.setColor(emcolor)
self.tempbandpoints = QgsRubberBand(self.canvas, QGis.Point)
self.tempbandpoints.setWidth(7)
self.tempbandpoints.setColor(emcolor)
self.movingband = QgsRubberBand(self.canvas, QGis.Point)
self.movingband.setWidth(5)
self.movingband.setColor(emcolor)
self.layersignals = []
self.marker = None
def initGui(self):
"""Create the menu entries and toolbar icons inside the QGIS GUI."""
icon_path = ":/icons/settings"
self.add_action(
icon_path, text=self.tr(u"Show Settings"), callback=self.show_settings, parent=self.iface.mainWindow()
)
icon_path = ":/icons/viewer"
self.add_action(
icon_path, text=self.tr(u"Earthmine Viewer"), callback=self.open_viewer, parent=self.iface.mainWindow()
)
self.marker = PostionMarker(self.canvas)
self.marker.hide()
self.viewer = Viewer(callbackobject=self)
self.viewer.trackingChanged.connect(self.marker.setTracking)
self.viewer.setLocationTriggered.connect(partial(self.canvas.setMapTool, self.pointtool))
self.viewer.updateFeatures.connect(self.update_earthmine_features)
self.viewer.layerChanged.connect(self.iface.setActiveLayer)
self.viewer.clearLine.connect(self.clear_bands)
self.viewer.closed.connect(self.remove_items)
self.iface.currentLayerChanged.connect(self.viewer.update_current_layer)
cursor = QCursor(QPixmap(":/icons/location"))
self.pointtool.setCursor(cursor)
self.pointtool.setAction(self.viewer.setlocationaction)
def remove_items(self):
self.marker.setTracking(False)
self.disconnect_projectsignals()
self.iface.actionPan().trigger()
def unload(self):
"""Removes the plugin menu item and icon from QGIS GUI."""
self.canvas.scene().removeItem(self.marker)
del self.marker
self.disconnect_projectsignals()
#.........这里部分代码省略.........
示例2: setupUi
# 需要导入模块: from qgis.gui import QgsMapToolEmitPoint [as 别名]
# 或者: from qgis.gui.QgsMapToolEmitPoint import setAction [as 别名]
def setupUi(self, _):
"""
Add to the UI the following elements:
1) the selection editor
2) the tabs with the dynamic forms
3) the map
4) the toolbar with the map tools
"""
super(MainWindow, self).setupUi(self)
self.selection_editor = SelectionDialog(self)
self.actionUndo.setDisabled(True)
# setup dynamic forms
self.tabs = (
Tab("declustering",
self.declusteringFormLayout,
DECLUSTERER_METHODS,
[self.declusterButton, self.declusteringPurgeButton]),
Tab("completeness",
self.completenessFormLayout,
COMPLETENESS_METHODS,
[self.completenessButton, self.completenessPurgeButton]),
Tab("recurrence_model",
self.recurrenceModelFormLayout,
OCCURRENCE_METHODS,
[self.recurrenceModelButton]),
Tab("max_magnitude",
self.maxMagnitudeFormLayout,
MAX_MAGNITUDE_METHODS,
[self.maxMagnitudeButton]),
Tab("smoothed_seismicity",
self.smoothedSeismicityFormLayout,
SMOOTHED_SEISMICITY_METHODS,
[self.smoothedSeismicityButton]),
Tab("histogram",
self.catalogueAnalysisFormLayout,
CATALOGUE_ANALYSIS_METHODS,
[self.catalogueAnalysisButton]))
for tab in self.tabs:
tab.setup_form(self.on_algorithm_select)
self.stackedFormWidget.currentChanged.connect(self.change_tab)
# setup Map
self.mapWidget.setCanvasColor(Qt.white)
self.mapWidget.enableAntiAliasing(True)
self.mapWidget.show()
#self.message_bar = QgsMessageBar(self.centralWidget)
#self.outputVerticalLayout.insertWidget(0, self.message_bar)
# setup toolbar
group = QtGui.QActionGroup(self)
group.addAction(self.actionZoomIn)
group.addAction(self.actionZoomOut)
group.addAction(self.actionPan)
group.addAction(self.actionIdentify)
# create the map tools
toolPan = QgsMapToolPan(self.mapWidget)
toolPan.setAction(self.actionPan)
# false = in
toolZoomIn = QgsMapToolZoom(self.mapWidget, False)
toolZoomIn.setAction(self.actionZoomIn)
# true = out
toolZoomOut = QgsMapToolZoom(self.mapWidget, True)
toolZoomOut.setAction(self.actionZoomOut)
toolIdentify = QgsMapToolEmitPoint(self.mapWidget)
toolIdentify.setAction(self.actionIdentify)
toolIdentify.canvasClicked.connect(
lambda point, button: self.catalogue_map.show_tip(point))
self.actionZoomIn.triggered.connect(
lambda: self.mapWidget.setMapTool(toolZoomIn))
self.actionZoomOut.triggered.connect(
lambda: self.mapWidget.setMapTool(toolZoomOut))
self.actionPan.triggered.connect(
lambda: self.mapWidget.setMapTool(toolPan))
self.actionIdentify.triggered.connect(
lambda: self.mapWidget.setMapTool(toolIdentify))
self.mapWidget.setMapTool(toolPan)
self.stackedFormWidget.setCurrentIndex(0)
示例3: TSTools
# 需要导入模块: from qgis.gui import QgsMapToolEmitPoint [as 别名]
# 或者: from qgis.gui.QgsMapToolEmitPoint import setAction [as 别名]
class TSTools(QObject):
def __init__(self, iface):
super(TSTools, self).__init__()
# Save reference to the QGIS interface
self.iface = iface
self.canvas = self.iface.mapCanvas()
# initialize plugin directory
self.plugin_dir = os.path.dirname(__file__)
# initialize locale
locale = QSettings().value("locale/userLocale")[0:2]
localePath = os.path.join(self.plugin_dir,
'i18n',
'tstools_{}.qm'.format(locale))
if os.path.exists(localePath):
self.translator = QTranslator()
self.translator.load(localePath)
if qVersion() > '4.3.3':
QCoreApplication.installTranslator(self.translator)
# Location info - define these elsewhere #TODO
self.location = os.getcwd()
# Toolbar
self.init_toolbar()
# Map tool on/off
self.tool_enabled = True
print 'DEBUG {f}: found {i} TS data models'.format(
f=__file__, i=len(tsm.ts_drivers))
def init_toolbar(self):
""" Creates and populates the toolbar for plugin """
# MapTool button
self.action = QAction(QIcon(':/plugins/tstools/tstools_click.png'),
'Time Series Tools', self.iface.mainWindow())
self.action.triggered.connect(self.set_tool)
self.iface.addToolBarIcon(self.action)
# Configuration menu button
self.action_cfg = QAction(QIcon(':/plugins/tstools/tstools_config.png'),
'Configure', self.iface.mainWindow())
self.action_cfg.triggered.connect(self.handle_config)
self.iface.addToolBarIcon(self.action_cfg)
# Map tool
self.tool_ts = QgsMapToolEmitPoint(self.canvas)
self.tool_ts.setAction(self.action)
self.tool_ts.canvasClicked.connect(self.plot_request)
@pyqtSlot()
def set_tool(self):
""" Sets the time series tool as current map tool """
self.tool_enabled = True
self.canvas.setMapTool(self.tool_ts)
@pyqtSlot()
def unset_tool(self):
""" Unsets the time series tool as current map tool """
self.tool_enabled = False
self.canvas.setMapTool(None)
def handle_config(self):
""" Handles configuration menu for initializing the time series """
print 'DEBUG %s : show/hide config' % __file__
# Init the dialog
self.config = Config(self, self.location)
# Connect signals
self.config.accepted.connect(self.config_accepted)
self.config.canceled.connect(self.config_closed)
# Execute & show dialog
self.config.exec_()
def config_accepted(self):
""" Handles 'OK' button from Config dialog and tries to add
time series
"""
# Try new values
location = str(self.config.location)
model_index = int(self.config.model_index)
custom_options = self.config.custom_options
# Set data model for controller from user pick
try:
self.controller.get_time_series(
tsm.ts_drivers[model_index],
location,
custom_options)
# Accept values
self.location = location
# Close config
self.config_closed()
# Send message
#.........这里部分代码省略.........