একক বৈশিষ্ট্য নির্বাচন করুন এর মতো একটি নতুন সরঞ্জাম তৈরি করার সর্বোত্তম উপায় হ'ল QgsMapTool
ক্লাস থেকে উত্তরাধিকারী । যখন আপনার সরঞ্জামটি সক্রিয় থাকে, যা ব্যবহার করে সেট করা যেতে পারে QgsMapCanvas::setMapTool
, ক্যানভাসটি পেতে যে কোনও কীবোর্ড বা ক্লিক ইভেন্টগুলি আপনার কাস্টম সরঞ্জামটিতে পাঠানো হবে।
এখানে একটি বেসিক QgsMapTool
ক্লাস
class PointTool(QgsMapTool):
def __init__(self, canvas):
QgsMapTool.__init__(self, canvas)
self.canvas = canvas
def canvasPressEvent(self, event):
pass
def canvasMoveEvent(self, event):
x = event.pos().x()
y = event.pos().y()
point = self.canvas.getCoordinateTransform().toMapCoordinates(x, y)
def canvasReleaseEvent(self, event):
#Get the click
x = event.pos().x()
y = event.pos().y()
point = self.canvas.getCoordinateTransform().toMapCoordinates(x, y)
def activate(self):
pass
def deactivate(self):
pass
def isZoomTool(self):
return False
def isTransient(self):
return False
def isEditTool(self):
return True
আপনার যা প্রয়োজন তা করতে পারেন canvasReleaseEvent
ইত্যাদি
এই সরঞ্জামটি সক্রিয় করতে আপনি কেবলমাত্র:
tool = PointTool(qgis.iface.mapCanvas())
qgis.iface.mapCanvas().setMapTool(tool)
class PointTool(QgsMapTool): NameError: name 'QgsMapTool' is not defined
। কোন ধারনা?