如何使用 QFileDialog 知道要保存的文件类型

发布于 2024-11-14 16:23:46 字数 507 浏览 2 评论 0原文

关于 pyQt4

我更喜欢在 QFileDialog 中使用 getSaveFilename 的静态方法,以便用户看到 Windows/Mac 本机对话框。

我的问题是,如果用户没有在保存文件名中键入文件扩展名(例如选择要保存文件的图像类型时),那么我无法检查文件类型他们想另存为。

如何创建一个对话框来保存带有过滤器的文件,以及如何知道用户选择了哪个过滤器?

例如:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
file = QtGui.QFileDialog.getSaveFileName(self, 'Save file', '', files_types)

对于 var 文件,我只有文件的路径,但我不确定用户选择的格式是什么。

所以,我想知道如何获得扩展名或用户选择的文件类型。 有没有办法使用此方法获取 selectedFilter ?

多谢!

About pyQt4

I prefer to use the static method for the getSaveFilename in the QFileDialog so that the user sees the Windows/Mac native dialog.

My problem is that if the user doesn't type the file extension the in the save file name (say when selecting an image type to save a file as), then I don't have a way of checking to see what type of file they wanted to save as.

How can I create a dialog to save files with a filter, and how to know which filter the user chose?

For example:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
file = QtGui.QFileDialog.getSaveFileName(self, 'Save file', '', files_types)

With var file I'll have only the file's path, but I'm not sure whats the format that user chose.

So, I wanna know how could I get the extension, or the files type chosen by user.
Is there away to get the selectedFilter using this method?

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

韵柒 2024-11-21 16:23:46

您可以使用 getSaveFileNameAndFilter() 方法:(

filename, filter = QtGui.QFileDialog.getSaveFileNameAndFilter(self, 'Save file', '', files_types)

但是在 PySide 中,getSaveFileNameAndFilter() 不存在,并且 getSaveFileName() 已经这样做了,我不确定 PyQT api 版本 2 是否也是这种情况,这是 Python 的默认设置。 3)

You can use the getSaveFileNameAndFilter() method:

filename, filter = QtGui.QFileDialog.getSaveFileNameAndFilter(self, 'Save file', '', files_types)

(In PySide however, getSaveFileNameAndFilter() does not exist, and getSaveFileName() already behaves that way. I'm not sure whether this is also the case for PyQT api version 2, which is the default for Python 3)

我们只是彼此的过ke 2024-11-21 16:23:46

在 PyQt5 中只需使用:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
options = QFileDialog.Options()
filename, _ = QFileDialog.getSaveFileName(
            self, 'Save as... File', 'untitled.gml', filter=file_types,options=options)

In PyQt5 just use:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
options = QFileDialog.Options()
filename, _ = QFileDialog.getSaveFileName(
            self, 'Save as... File', 'untitled.gml', filter=file_types,options=options)
岁月蹉跎了容颜 2024-11-21 16:23:46

这是不可能的。

做到这一点的唯一方法是创建一个通用对话框,但另一方面,您将失去漂亮的本机窗口。

Its not possible.

The only way to do this, is creating a generical dialog, but by another hand you will lost the pretty native windows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文