[Qt-interest] Force file extension with QFileDialog::getSaveFileName?

Till Oliver Knoll till.oliver.knoll at gmail.com
Wed Jun 22 10:39:50 CEST 2011



Am 21.06.2011 um 23:15 schrieb Eric Clark <eclark at ara.com>:

> They are saying that under Windows, the automatic file extensioning is done by default for you and that on Linux you have to do what you just did. However, I do not see any mention of the setDefaultSuffix function. 

Guys, nothing is wrong with the docu ;) The setDefaultSuffix method only has an impact on a QFileDialog *instance*, but the OP was calling the *static* method which triggers the creation of a *native* file dialog, which might or might not add the suffix by itself already. On Mac the extension is added depending on the current filter, if  the filter happens to be unique (e.g. "PNG (*.png)" as opposed to "Images (*.png, *.jpg, *.bmp)"), on Windows not quite sure, KDE/Gnome native file dialogs apparently don't auto-suffix your filename.

That said, I am not even sure whether setDefaultSuffix() has an impact on the *native* file dialog - might be that Qt expands the filename accordingly in "post production" (after the native dialog has returned).

It works for sure with the Qt file dialog, but that one has several limitations and disadvantages. One being that the suffix cannot be auto-applied depending on the selected filter (if you want to save under multiple file formats, for instance, and the filter would specify the format such as "Template" or "Document"). Only one suffix can be supplied with setAutoSuffix.

Cheers, Oliver


More information about the Qt-interest-old mailing list