【问题标题】:howto get the selectionChanged signal如何获得 selectionChanged 信号
【发布时间】:2012-04-26 18:18:22
【问题描述】:

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

QObject.connect(self.iface.mapCanvas(),SIGNAL("selectionChanged(QgsMapLayer)"), self.test)

在 qgis 的日志中我收到此警告

Warning: Object::connect:  (receiver name: 'MainWindow')

【问题讨论】:

    标签: plugins pyqt qgis


    【解决方案1】:

    你要做的就是在每次选择图层时创建一个信号:

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2017-08-27
      相关资源
      最近更新 更多