dmh*_*126 2 python pyqt pyqt4 qfiledialog
我在使用 QFileDialog 在 PyQt4 中保存带有扩展名的文件(获取文件路径和附加扩展名)时遇到问题。我的 Python 代码如下所示:
dialog = QtGui.QFileDialog()
dialog.setDefaultSuffix(".json")
file = dialog.getSaveFileName(None, "Title", "", "JSON (.json)")
Run Code Online (Sandbox Code Playgroud)
它有效,路径正确,对话框标题和过滤器在对话框窗口中,但第二行被忽略。文件没有任何扩展名。
如何默认添加扩展名?我究竟做错了什么?
使用静态函数时setDefaultSuffix,调用的实例QFileDialog无效。这些函数将创建自己的内部文件对话框,因此可以在其上设置的唯一选项是通过参数提供的任何选项。
当然,setDefaultSuffix如果QFileDialog直接显示的实例会起作用:
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')
Run Code Online (Sandbox Code Playgroud)
但请注意,您无法使用此方法获得本机文件对话框。
如果正确指定了文件名过滤器(参见上文和 Barmak Shemirani 的回答),本机文件对话框可能会提供一种自动选择文件扩展名的方法(Linux 上的 KDE 确实是这种情况,但我没有了解其他平台)。
| 归档时间: |
|
| 查看次数: |
4948 次 |
| 最近记录: |