几个小时以来,我一直在尝试使用 python 打开现代文件夹选择对话框。
我的应用程序当前正在使用 pywebview 的 create_file_dialog。这按预期工作,但对于用户来说确实不太方便。见下图。
我想要的是这个:
除了看起来更好、设计更直观之外,它还使用最后选择的路径作为初始选择。
我尝试过使用 pywin32,但我还没有找到创建这个确切对话框的方法(只有默认文件选择对话框的不同形式)。
根据我的研究,我可能需要IFileOpenDialog。但是似乎没有办法使用Python来使用IFileOpenDialog,或者有吗?
有人知道如何创建上述对话框吗?
这并非不可能 - 请参阅从 Python 访问 COM 方法作为如何在 Python 中使用任意 COM 接口的示例。
需要非常仔细的工作才能像该答案中的接口一样移植
IFileOpenDialog
,并且错误可能会导致崩溃。
请注意,Python 有一种简单的方法来访问 COM 对象,例如
obj = win32com.client.Dispatch('Program.Name')
但它仅适用于基于
IDispatch
的界面,而 IFileOpenDialog
则不然。
我建议不要尝试直接从 Python 使用
IFileOpenDialog
,而是使用一种可以轻松直接使用 IFileOpenDialog
的语言(即 C++)创建一个包装器,并将其放入将在 Python 中使用的 DLL 中。