gpt4 book ai didi

python - 如何在非 native QFileDialog 中重新填充系统的 "Recent places"?

转载 作者:行者123 更新时间:2023-11-30 03:34:07 25 4
gpt4 key购买 nike

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

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

这是一个可以重现问题的最小代码示例。

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

我已经尝试过 w.setHistory(w.history()),它将当前目录添加到“最近的位置”,但它不会恢复正常的 ~5 个最近的目录在 native 对话框中查看。即使在设置 DontUseNativeDialog 选项之前,w.history() 也只会返回当前目录,而不是 native 对话框中出现的最近位置的完整列表。

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

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

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

最佳答案

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

非 native 对话框显示一个专门的 UI,显示您通过 setHistory() 设置的所有条目,但仅显示那些条目。

关于python - 如何在非 native QFileDialog 中重新填充系统的 "Recent places"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42298826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com