我正在为 GIS 软件 QGIS 开发一个插件。我有一个QAction图标,选中该图标后,只要切换其可见性,就会将组中的图层连接到功能。然后,当它未选中时,它应该断开这些功能,但我收到一个错误:
Traceback (most recent call last):
File "C:/Users/Me/.qgis2/python/plugins\Example\Example.py", line 248, in run
layers.visibilityChanged.disconnect(print_one)
TypeError: 'function' object is not connected
这是一个示例代码:
def run(self, checked):
root = QgsProject.instance().layerTreeRoot()
group = root.findGroup('Group')
def print_one():
print 'one'
if checked == True:
for layers in group.children():
layers.visibilityChanged.connect(print_one)
else:
for layers in group.children():
layers.visibilityChanged.disconnect(print_one)
为什么信号没有断开?
我可以使用layers.visibilityChanged.disconnect()
,但这会断开所有信号,因此不符合我的兴趣。