gpt4 book ai didi

python - 无法在 QFileDialog 中为文件添加扩展名

转载 作者:行者123 更新时间:2023-12-03 18:57:55 27 4
gpt4 key购买 nike

我在使用 QFileDialog 在 PyQt4 中保存带扩展名的文件(获取文件路径并追加扩展名)时遇到问题。我的 Python 代码如下所示:

dialog = QtGui.QFileDialog()
dialog.setDefaultSuffix(".json")
file = dialog.getSaveFileName(None, "Title", "", "JSON (.json)")

有效,路径正确,对话框标题和过滤器在对话框窗口中,但第二行被忽略。文件没有任何扩展名。

如何默认添加扩展?我做错了什么?

最佳答案

当您使用 static functions 时,在 QFileDialog 实例上调用 setDefaultSuffix 无效.这些函数将创建它们自己的内部文件对话框,因此可以在其上设置的唯一选项是通过参数提供的任何选项。

当然,如果直接显示 QFileDialog 的实例,setDefaultSuffix 将起作用:

dialog = QtGui.QFileDialog()
dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
dialog.setDefaultSuffix('json')
dialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
dialog.setNameFilters(['JSON (*.json)'])
if dialog.exec_() == QtGui.QDialog.Accepted:
print(dialog.selectedFiles())
else:
print('Cancelled')

但请注意,您无法使用此方法获得 native 文件对话框。

如果正确指定了文件名过滤器(见上文,并且 Barmak Shemirani's answer ), native 文件对话框可能提供一种自动选择文件扩展名的方法(Linux 上的 KDE 肯定是这种情况,但我不知道其他平台)。

关于python - 无法在 QFileDialog 中为文件添加扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29835413/

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