我正在建立一个从QFileDialog
派生的自定义类,并且我想应用DontUseNativeDialog
选项。但是,这似乎消除了文件组合框中的“最近的地方”部分,如果可能,我想恢复它。
有没有一种方法可以直接访问系统的“最近地点”路径列表并通过setHistory()
将其应用于对话框?该对话框应在多个平台上使用,并且这种策略看起来可能会变得困惑。 (不过,如果有一种独立于平台的方式来访问PyQt / Python中系统的“最近地点”列表,我将不知所措。)
这是将重现此问题的最小代码示例。
w = QFileDialog()
w.setOption(DontUseNativeDialog)
w.show()
我已经尝试过
w.setHistory(w.history())
,它将当前目录添加到“最近的地方”,但是它没有还原我在本机对话框中看到的正常的〜5最近目录。即使在设置DontUseNativeDialog
选项之前,w.history()
只会返回当前目录,而不返回本机对话框中出现的最近地点的完整列表。更新:我还尝试在设置
saveState()
选项之前使用DontUseNativeDialog
保存对话框的状态。w = QFileDialog()
state = w.saveState()
w.setOption(DontUseNativeDialog)
w.restoreState(state)
但
restoreState()
返回False
,指示错误。 最佳答案
很遗憾地告诉您,您所指的这个“最新”列表是特定于操作系统的实现。如果您要启动资源管理器,则会在此处看到相同的路径(例如)。
非本机对话框显示一个专门的UI,该UI显示您通过setHistory()设置的所有条目,但仅显示那些条目。