如何使用 Python 创建现代 Windows“打开文件夹”对话框

问题描述 投票:0回答:1

几个小时以来,我一直在尝试使用 python 打开现代文件夹选择对话框。

我的应用程序当前正在使用 pywebview 的 create_file_dialog。这按预期工作,但对于用户来说确实不太方便。见下图。

我想要的是这个:

除了看起来更好、设计更直观之外,它还使用最后选择的路径作为初始选择。

我尝试过使用 pywin32,但我还没有找到创建这个确切对话框的方法(只有默认文件选择对话框的不同形式)。

根据我的研究,我可能需要IFileOpenDialog。但是似乎没有办法使用Python来使用IFileOpenDialog,或者有吗?

有人知道如何创建上述对话框吗?

python winapi
1个回答
0
投票

这并非不可能 - 请参阅从 Python 访问 COM 方法作为如何在 Python 中使用任意 COM 接口的示例。

需要非常仔细的工作才能像该答案中的接口一样移植

IFileOpenDialog
,并且错误可能会导致崩溃。


请注意,Python 有一种简单的方法来访问 COM 对象,例如

obj = win32com.client.Dispatch('Program.Name')

但它仅适用于基于

IDispatch
的界面,而
IFileOpenDialog
则不然。


我建议不要尝试直接从 Python 使用

IFileOpenDialog
,而是使用一种可以轻松直接使用
IFileOpenDialog
的语言(即 C++)创建一个包装器,并将其放入将在 Python 中使用的 DLL 中。

© www.soinside.com 2019 - 2024. All rights reserved.