TypeError: disconnect() failed between 'valueChanged' and all its connections
Traceback (most recent call last):
File "C:\Users/Francisco/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\lallemand_plant_care\gui\kriging\kriging_dlg.py", line 124, in runSmartMap
self.smartMap.pushButton_ImportQGIS_clicked()
File "C:\Users/Francisco/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\Smart_Map.py", line 1462, in pushButton_ImportQGIS_clicked
self.reset_gui()
File "C:\Users/Francisco/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\Smart_Map.py", line 722, in reset_gui
self.dlg.horizontalSlider_Nugget.valueChanged.disconnect()
TypeError: disconnect() failed between 'valueChanged' and all its connections
Python version: 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
QGIS version: 3.22.12-Białowieża Białowieża, b8534cb1
Olá Prof @gustavowillam, primeiramente gostaria de parabenizá-lo pelo excelente plugin desenvolvido! Estou desenvolvendo uma aplicação que usa seu plugin no background e vi que o erro acima é recorrente nos issues aqui e gostaria de dar minha contribuição para ajudar na correção dele.
uma sugestão seria trocar o comboBox_VTarget que é um QComboBox por um QgsFieldComboBox daí vc fica livre dos problemas de manipulação de sinais entre o QgsMapLayerComboBox e QgsFieldComboBox.
Já no método self.reset_gui() é mesmo necessário disconectar os sinais dos slots todas as vezes que usá-lo? Por exemplo, reset_gui() é usado na inicialização do plugin, nesta hora o método disconecta a widget self.dlg.horizontalSlider_Nugget mas esta widget só terá um slot conectado quando o usuário chegar à tab de interpolação (tabWidget_Interpolacao), isso é possivelmente uma fonte deste erro
https://github.com/gustavowillam/SmartMapPlugin/blob/23e54a26ad4a0ac1ba41cf3548e0999565b068fe/Smart_Map.py#L676
Caso seja realmente necessário manter as disconexões dos slots, minha sugestão é de que o método reset_gui() seja dividido em métodos menores cada um responsável por resetar uma TabWidget específica, pois nesse caso haverão slots conectados. Espero ter ajudado e gostaria de me colocar à disposição para contribuir no desenvolvimento deste plugin.
TypeError: disconnect() failed between 'valueChanged' and all its connections Traceback (most recent call last): File "C:\Users/Francisco/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\lallemand_plant_care\gui\kriging\kriging_dlg.py", line 124, in runSmartMap self.smartMap.pushButton_ImportQGIS_clicked() File "C:\Users/Francisco/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\Smart_Map.py", line 1462, in pushButton_ImportQGIS_clicked self.reset_gui() File "C:\Users/Francisco/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\Smart_Map.py", line 722, in reset_gui self.dlg.horizontalSlider_Nugget.valueChanged.disconnect() TypeError: disconnect() failed between 'valueChanged' and all its connections
Python version: 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] QGIS version: 3.22.12-Białowieża Białowieża, b8534cb1
Olá Prof @gustavowillam, primeiramente gostaria de parabenizá-lo pelo excelente plugin desenvolvido! Estou desenvolvendo uma aplicação que usa seu plugin no background e vi que o erro acima é recorrente nos issues aqui e gostaria de dar minha contribuição para ajudar na correção dele.
Este erro geralmente ocorre ao tentar desconectar um sinal que não possui conexões ou quando a conexão específica que está sendo desconectada não existe, como são os casos nas linhas abaixo: https://github.com/gustavowillam/SmartMapPlugin/blob/23e54a26ad4a0ac1ba41cf3548e0999565b068fe/Smart_Map.py#L1590
uma sugestão seria trocar o comboBox_VTarget que é um QComboBox por um QgsFieldComboBox daí vc fica livre dos problemas de manipulação de sinais entre o QgsMapLayerComboBox e QgsFieldComboBox.
Já no método self.reset_gui() é mesmo necessário disconectar os sinais dos slots todas as vezes que usá-lo? Por exemplo, reset_gui() é usado na inicialização do plugin, nesta hora o método disconecta a widget self.dlg.horizontalSlider_Nugget mas esta widget só terá um slot conectado quando o usuário chegar à tab de interpolação (tabWidget_Interpolacao), isso é possivelmente uma fonte deste erro https://github.com/gustavowillam/SmartMapPlugin/blob/23e54a26ad4a0ac1ba41cf3548e0999565b068fe/Smart_Map.py#L676
Caso seja realmente necessário manter as disconexões dos slots, minha sugestão é de que o método reset_gui() seja dividido em métodos menores cada um responsável por resetar uma TabWidget específica, pois nesse caso haverão slots conectados. Espero ter ajudado e gostaria de me colocar à disposição para contribuir no desenvolvimento deste plugin.