如何获取selectionChanged信号
问题描述:
您好我正在为python开发一个Qgis插件,我需要连接sselectionChanged信号时发出的图层功能被选中,我找不到任何互联网上的例子,这是我有什么据如何获取selectionChanged信号
QObject.connect(self.iface.mapCanvas(),SIGNAL("selectionChanged(QgsMapLayer)"), self.test)
做了QGIS的日志我得到这样的警告
Warning: Object::connect: (receiver name: 'MainWindow')
答
,你所要做的就是每一次创建一个信号,你选择一个图层:
def initGui(self):
# ... your other code here
self.handler = None
self.selected_layer = None
QObject.connect(self.iface,SIGNAL("currentLayerChanged(QgsMapLayer *)") ,self.layerChanged)
def layerChanged(self, layer):
if self.handler:
QObject.disconnect(self.selected_layer, SIGNAL("selectionChanged()"),self.select_changed)
self.handler = False
self.selected_layer = None
if layer is not None:
if layer.isValid():
QObject.connect(layer,SIGNAL("selectionChanged()"),self.select_changed)
self.selected_layer = layer
def select_changed(self):
# whatever
pass
编辑:断开连接(错误图层)固定