【发布时间】:2017-08-06 14:30:10
【问题描述】:
我为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 后断开连接
【问题讨论】:
-
您可以设置一个布尔标志以仅连接一次或仅在 QFileDialog 尚未运行时才运行它。
-
@JLev 你能提供一个快速的示例代码吗?我刚刚开始使用 Qt
-
为什么每次发出信号时都要连接它?您只需将这样的信号连接到某个执行一次的地方(例如小部件的构造函数)。
-
@Mike 你能提供一个简短的示例代码吗?
-
@Vasily。编辑您的问题并显示所有插件的代码。