我为QGIS编写了一个Qt插件,在其中我有一个QPushButton browse_btn
来浏览输出文件夹。
我使用QFileDialog.getExistingDirectory
函数,一切正常。但是,如果我关闭插件并再次打开它,然后单击按钮添加路径,选择路径或关闭后,打开的选择路径的窗口将重新打开。如果我关闭插件,请再次打开它,然后选择路径'窗口将重新打开3次,依此类推......
类似的问题is still open here和in comments here,可能还有solved here,但由于没有提供代码,我无法应用它来解决我的问题。
具体代码如下:
self.dlg.browse_btn.clicked.connect(self.set_output)
def set_output(self):
folder_path = str(QFileDialog.getExistingDirectory(self.dlg, u"Pick a folder"))
if not folder_path:
return None
我认为这是因为每次我打开关闭插件时都会使用self.dlg.browse_btn.clicked.connect(self.set_output)
创建单独的连接,并且只有在重新启动QGIS后它才会断开连接
答案 0 :(得分:1)
试试这个 - 将一个布尔标志isConnected添加到你的类(或dlg)并将此标志初始化为false。
然后将您的连接线更改为此
if (!self.isConnected):
self.dlg.browse_btn.clicked.connect(self.set_output)
self.isConnected = true