我正在编写一个 excel 插件,我不需要主窗口和所有闪亮的小部件/工具包,但我需要对话框。
这是我尝试创建一个(使用pywin32):
import win32ui, win32con
def openFileDialog(extensions = None, multi = False):
"""open a Windows File 'Open' Dialog. returns a list of path of files selected by user.
Keyword arguments:
extensions (default None) - a list or tuple containing (description, ext)
pair of acceptable files.
ext can be a string - i.e) '*.txt', or a list or tuple of many strings ['*.txt', '*.htm']
description is a string describing corresponding ext.
multi - (default False) True to allow user to select more than one files.
"""
openFlags = win32con.OFN_OVERWRITEPROMPT|win32con.OFN_FILEMUSTEXIST
if multi:
openFlags|=win32con.OFN_ALLOWMULTISELECT
dlg = win32ui.CreateFileDialog(1,
None,
None,
openFlags,
extensionFilterString(extensions))
if dlg.DoModal()!=win32con.IDOK:
return None
return dlg.GetPathNames()
虽然它们有效,但我认为这真的不是 Python 的。我看了一下 pyside,他们有QFileDialog
- 但它需要QApplication
并且似乎Qapplication
接管了主循环。我不认为我需要所有的麻烦,我真的不知道 python gui 编程。在 python 中打开文件对话框最方便的方法是什么?