我目前正在测试为 MacOS X.6 下的 windows 编写的软件。大多数东西已经工作了,但目前我坚持一件事:Mac下的本机SaveFileName对话框。
QString fileName = m_sSaveAsDir + "untitled." + m_sFileExtension;
qDebug() << "File Extension:" << m_sFileExtension; //"jpg"
qDebug() << "SaveDir:" << m_sSaveAsDir; //""
qDebug() << "Filename:" << fileName; //Filename: "untitled.jpg"
fileName = QFileDialog::getSaveFileName( 0, tr( "Save As" ),
fileName, tr("Images (*.dng *.tif *.jpg)"), 0, 0 );
qDebug() << "Filename:" << fileName; //Filename: "//...../Pictures/untitled.dng"
所以很明显以前的扩展名 jpg 在 MacOs 下被忽略了,因此不显示也不保存。这对我来说很好。此外,Qt 手册说在 MacOS 下过滤器被忽略。如果我在 SaveDialog 中查看浏览器中的文件夹,这是正确的(文件未过滤)。但是好像只要filedialog中没有输入扩展名,就将filter中的第一个扩展名作为扩展名,非常烦人。我怎样才能解决这个问题?我尝试通过将 getSaveFileName() 方法中的最后一个参数更改为“DontUseNativeDialog”来使用 NonNativeSaveDialog,这非常有效,但看起来不太好。有什么建议么?
问候唐尼