Python 如何重新填充系统';s";“最近的地方”;在非本地QFileDialog中?

Python 如何重新填充系统';s";“最近的地方”;在非本地QFileDialog中?,python,c++,qt,pyqt,qt5,Python,C++,Qt,Pyqt,Qt5,我正在构建一个从QFileDialog派生的自定义类,我想应用DontUseNativeDialog选项。然而,这似乎从文件组合框中删除了“最近的位置”部分,如果可能的话,我想恢复它 有没有一种方法可以在不直接访问系统的“最近地点”路径列表并通过setHistory()将其应用于对话框的情况下执行此操作?该对话框旨在在多个平台上使用,这种策略似乎会变得混乱。(不过,如果PyQt/Python中有一种与平台无关的方式来访问系统的“最近地点”列表,我洗耳恭听。) 下面是一个最小的代码示例,它将重现这

我正在构建一个从
QFileDialog
派生的自定义类,我想应用
DontUseNativeDialog
选项。然而,这似乎从文件组合框中删除了“最近的位置”部分,如果可能的话,我想恢复它

有没有一种方法可以在不直接访问系统的“最近地点”路径列表并通过
setHistory()
将其应用于对话框的情况下执行此操作?该对话框旨在在多个平台上使用,这种策略似乎会变得混乱。(不过,如果PyQt/Python中有一种与平台无关的方式来访问系统的“最近地点”列表,我洗耳恭听。)

下面是一个最小的代码示例,它将重现这个问题

w = QFileDialog()
w.setOption(DontUseNativeDialog)
w.show()
我尝试了
w.setHistory(w.history())
,它将当前目录添加到“最近的位置”,但它不会恢复我在本机对话框中看到的正常的~5个最近的目录。甚至在设置
DontUseNativeDialog
选项之前,
w.history()
将只返回当前目录,而不是本机对话框中显示的最近位置的完整列表

更新:在设置
DontUseNativeDialog
选项之前,我还尝试使用
saveState()
保存对话框的状态,例如

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

但是
restoreState()
返回
False
,表示有错误。

我很抱歉地告诉您,您所指的“最近”列表是特定于操作系统的实现。如果要启动资源管理器(例如),您在那里看到的路径与您看到的路径相同


“非本机”对话框显示一个专门的UI,其中显示通过setHistory()设置的所有条目,但仅显示这些条目。

能否提供一个最小的示例,说明如何对其进行子类化、如何实例化等?请说明您的问题。你应该包括一个你有问题的代码,然后我们可以尝试帮助解决具体的问题。你也应该读一读。谢谢@TobySpeight,我认为我无法以目前的声誉水平编辑我的问题。我已经试着让它看起来更像样一点,并包含所要求的信息。@CraigularJoe。使用和。谢谢你的建议,@ekhumaro。在设置
DontUseNativeDialog
选项并在之后恢复之前,我尝试保存状态,但似乎没有效果。我将更新问题以反映这一点。