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