【问题标题】:How to Access PyQGS map Canvas from PyQT5 window如何从 PyQT5 窗口访问 PyQGIS 地图画布
【发布时间】:2019-11-19 09:21:06
【问题描述】:

我正在启动 pyQgis,新手。编码知识不够。请不要因为缺少代码而忽略问题。请指导。

我正在显示 QgsMapCanvas。在主窗口的 menuBar(将 QgsMapCanvas 显示为小部件)上,在 Click 上,将打开一个 GUI(pyqt5)。 GUI 有一个 QLabel、一个 QLineEdit 和一个 QpushButton。 如何在按下 QPushButton 时访问鼠标坐标。非常感谢你

【问题讨论】:

    标签: pyqt5 qgis


    【解决方案1】:

    如果你点击按钮,地图的坐标已经消失了。 您需要使用鼠标单击地图,例如通过使用 QgsMapTool。 示例 Qgis 3.4 - 控制台:

    # coding: utf-8
    from PyQt5.QtWidgets import QDialog,QLabel,QHBoxLayout
    from qgis.gui import QgsMapTool
    from qgis.utils import iface
    
    class CoordTool(QgsMapTool):
        def __init__(self, canvas):
            QgsMapTool.__init__(self, canvas)
            self.canvas = canvas
            self.setCursor(Qt.CrossCursor)
    
        def canvasReleaseEvent(self, event):
            point = self.toMapCoordinates(event.pos())
            coords = "X: "+ str(point.x()) +"/ Y: "+str( point.y())
            print(coords)
    
            dlg =QDialog()
            label =QLabel(coords)
            layout=QHBoxLayout()
            layout.addWidget(label)
            dlg.setLayout(layout)
            dlg.exec_()
    
    canvas = iface.mapCanvas()
    tool= CoordTool(canvas)
    canvas.setMapTool(tool)
    

    【讨论】:

      猜你喜欢
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 2021-12-27
      • 2017-07-24
      • 1970-01-01
      相关资源
      最近更新 更多