Qt QFileDialog继续重新打开

Qt QFileDialog继续重新打开,qt,pyqt,pyqt4,Qt,Pyqt,Pyqt4,我为写了一个Qt插件,里面有一个QPushButtonbrowse\u btn来浏览输出文件夹。 我使用了QFileDialog.getExistingDirectory函数,一切正常。但是,如果我关闭插件并再次打开它,然后单击按钮添加路径,则选择路径或关闭路径后,打开的路径选择窗口将重新打开。如果我关闭插件并再次打开它,“选择路径”窗口将重新打开3次,以此类推 类似的问题,而且很可能,但由于没有提供代码,我无法应用它来解决我的问题 具体代码如下: self.dlg.browse_btn.cli

我为写了一个Qt插件,里面有一个QPushButton
browse\u btn
来浏览输出文件夹。 我使用了
QFileDialog.getExistingDirectory
函数,一切正常。但是,如果我关闭插件并再次打开它,然后单击按钮添加路径,则选择路径或关闭路径后,打开的路径选择窗口将重新打开。如果我关闭插件并再次打开它,“选择路径”窗口将重新打开3次,以此类推

类似的问题,而且很可能,但由于没有提供代码,我无法应用它来解决我的问题

具体代码如下:

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\u btn.clicked.connect(self.set\u output)
创建单独的连接,并且它只有在我重新启动QGIS后才会断开连接

然后把你的连接线换成这个

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

您可以将布尔标志设置为仅连接一次,或者仅当QFileDialog尚未运行时才运行它。@JLev能否提供一个快速示例代码?我刚刚开始学习QT,为什么每次发射信号时都要连接它?您只需将这样一个信号连接到某个执行一次的地方(例如,小部件的构造函数)。@Mike您能提供一个简短的示例代码吗?@Vasily。编辑您的问题并显示插件的所有代码。