QFileDialog不断重新开放

时间:2017-08-06 14:30:11

标签: qt pyqt pyqt4

我为QGIS编写了一个Qt插件,在其中我有一个QPushButton browse_btn来浏览输出文件夹。 我使用QFileDialog.getExistingDirectory函数,一切正常。但是,如果我关闭插件并再次打开它,然后单击按钮添加路径,选择路径或关闭后,打开的选择路径的窗口将重新打开。如果我关闭插件,请再次打开它,然后选择路径'窗口将重新打开3次,依此类推......

类似的问题is still open herein 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后它才会断开连接

1 个答案:

答案 0 :(得分:1)

试试这个 - 将一个布尔标志isConnected添加到你的类(或dlg)并将此标志初始化为false。

然后将您的连接线更改为此

if (!self.isConnected):
    self.dlg.browse_btn.clicked.connect(self.set_output)
    self.isConnected = true