-1
我爲QGIS寫了一個Qt插件,裏面有一個QPushButton browse_btn
來瀏覽輸出文件夾。 我使用QFileDialog.getExistingDirectory
函數,它一切正常。但是,如果我關閉插件並再次打開它,然後單擊按鈕添加路徑,選擇路徑後打開的窗口將在我選擇路徑或關閉後重新打開。如果我關閉插件再次打開它的「選擇路徑」窗口將重新開放3次等等...QFileDialog不斷重新開放
類似的問題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
@JLev您能否提供一個簡單的示例代碼?我剛開始使用Qt – Vasily
爲什麼每次發射信號時都要連接信號?你只需要將這樣的信號連接到一個被執行一次的地方(例如構件的構造函數)。 – Mike