我正在开始pyQgis,新手。编码知识不足。请不要因为缺少代码而忽略该问题。请指导。
我正在显示QgsMapCanvas。在主窗口的menuBar上(将QgsMapCanvas显示为小部件),单击,将打开一个GUI(pyqt5)。 GUI有一个QLabel,一个QLineEdit和一个QpushButton。 如何在按QPushButton的操作中访问鼠标坐标。非常感谢你
答案 0 :(得分:0)
如果单击按钮,则地图的坐标已消失。 您需要使用鼠标点击地图,例如通过使用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)