首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取selectionChanged信号

如何获取selectionChanged信号
EN

Stack Overflow用户
提问于 2012-04-15 03:49:21
回答 1查看 1.4K关注 0票数 1

嗨,我正在用python开发一个Qgis插件,我需要连接选择图层要素时发出的sselectionChanged信号,我在互联网上找不到任何示例,这是我到目前为止所做的工作

代码语言:javascript
复制
QObject.connect(self.iface.mapCanvas(),SIGNAL("selectionChanged(QgsMapLayer)"), self.test)

在qgis的日志中,我收到以下警告

代码语言:javascript
复制
Warning: Object::connect:  (receiver name: 'MainWindow')
EN

回答 1

Stack Overflow用户

发布于 2012-06-03 23:06:27

您需要做的是在每次选择一个层时创建一个信号:

代码语言:javascript
复制
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

编辑:断开连接(错误图层)已修复

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10156842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档