我正在为qgis 3编写一个python插件。
基本上我正试图在用户点击它时获得一个功能。
mapTool.featureIdentified.connect(onFeatureIdentified)
所以在函数onfeatureIdentified
def onFeatureIdentified(feature):
print("feature selected : "+ str(feature.id()))
方法特征Identified传递隐式参数。
void QgsMapToolIdentifyFeature :: featureIdentified(const QgsFeature&)void QgsMapToolIdentifyFeature :: featureIdentified(QgsFeatureId)
我的问题是我想将另一个参数传递给函数(我想在识别一个特征时关闭我的窗口),如下所示:
mapTool.featureIdentified.connect(onFeatureIdentified(window))
def onFeatureIdentified(feature,window):
print("feature selected : "+ str(feature.id()))
window.quit()
通过这样做,window参数覆盖本机方法的隐式参数。
我应该怎么做 ?
有两种方法可以做到:
mapTool.featureIdentified.connect(lambda feature: onFeatureIdentified(feature, window))
然后
def onFeatureIdentified(feature,window):
mapTool.featureIdentified.connect(self.onFeatureIdentified)
然后
def onFeatureIdentified(self,feature):
print("feature selected : "+ str(feature.id()))
self.window.quit()
第一个参数是self,然后它将传递函数的原始参数