簡體   English   中英

如何在非本機QFileDialog中重新填充系統的“最近地點”?

[英]How can I repopulate the system's “Recent places” in non-native QFileDialog?

我正在構建一個從QFileDialog派生的自定義類,並且我想應用DontUseNativeDialog選項。 但是,這似乎消除了文件組合框中的“最近的地方”部分,並且我希望盡可能地恢復它。

有沒有一種方法可以直接訪問系統的“最近地點”路徑列表並通過setHistory()將其應用於對話框? 該對話框應在多個平台上使用,並且這種策略看起來可能會變得凌亂。 (不過,如果有一種獨立於平台的方式來訪問PyQt / Python中系統的“最近地點”列表,我就耳熟能詳。)

這是將重現此問題的最小代碼示例。

w = QFileDialog()
w.setOption(DontUseNativeDialog)
w.show()

我嘗試了w.setHistory(w.history()) ,它將當前目錄添加到“最近的地方”,但是它沒有還原我在本機對話框中看到的正常的w.setHistory(w.history())最近目錄。 甚至在設置DontUseNativeDialog選項之前, w.history()都將僅返回當前目錄,而不返回本機對話框中出現的最近地點的完整列表。

更新:我還嘗試在設置DontUseNativeDialog選項之前使用saveState()保存對話框的狀態,例如

w = QFileDialog()
state = w.saveState()
w.setOption(DontUseNativeDialog)
w.restoreState(state)

但是restoreState()返回False ,指示錯誤。

很抱歉告訴您,您所指的這個“最新”列表是特定於操作系統的實現。 如果您要啟動資源管理器,則在此處看到的路徑相同(例如)。

非本機對話框顯示一個專門的UI,該UI顯示您通過setHistory()設置的所有條目,但僅顯示那些條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM