Mac沙盒的QFileDialog和setDefaultSuffix

QFileDialog and setDefaultSuffix for Mac Sandbox

本文关键字:setDefaultSuffix QFileDialog Mac      更新时间:2023-10-16

我想在QFileDialog中设置默认文件扩展名,以便在我的应用程序中保存文件(它需要在mac应用程序商店沙盒中运行)。setDefaultSuffix在mac(没有沙盒)上的默认行为是它为用户输入的任何名称添加扩展名。

当沙盒打开时,这工作方式不同;它只是在交互开始时添加扩展名字符串,但是当用户删除建议的文件名(带扩展名)并输入一个不带扩展名的文件名时,来自QFileDialog的文件不包含后缀。是否有一种方法可以破解对话框,使其在沙盒中表现相同?

我使用的是Qt 4.8.5(现在无法升级)

我不认为你可以改变Mac沙盒的行为,但你可以为Mac添加简单的解决方案,如:

QString suffix = ".txt";  // your suffix here
QString fileName = ... // get filename after QFileDialog work
QFileInfo file(filename);
if(file.suffix().isEmpty()) fileName += suffix ;

事实证明,使用静态方法来显示QFileDialog使正确的默认后缀在Mac沙盒中工作,因此,而不是创建QFileDialog实例和设置默认后缀只需使用:

getSaveFileName(QWidget * parent = 0, const QString & caption = QString(), 
                const QString & dir = QString(), const QString & filter = QString(), 
                QString * selectedFilter = 0, Options options = 0)

相关文章:
  • 没有找到相关文章