Mac沙盒的QFileDialog和setDefaultSuffix
QFileDialog and setDefaultSuffix for Mac Sandbox
我想在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)
相关文章:
- 没有找到相关文章