2012-05-03 2 views
0

현재 MacOS X.6에서 Windows 용으로 작성된 소프트웨어를 테스트하고 있습니다. 그리고 대부분의 것들은 이미 작동하지만, 현재 1 가지로 붙어 있습니다 : Mac의 네이티브 SaveFileName 대화 상자.MacOS에서 QFileDialog :: getSaveFileName (...)을 사용하는 방법

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" 

MacOS에서는 이전의 확장자 jpg가 무시되어 표시되거나 저장되지 않습니다. 어느 것이 나에게 좋다. Qt 매뉴얼에 따르면 MacOS에서는 필터가 무시됩니다. SaveDialog에서 브라우저의 폴더를 보면 파일이 필터링되지 않습니다. 올바른 것입니다. 그러나 필터의 첫 번째 확장은 filedialog에 확장이 입력되지 않는 한 확장으로 사용되는 것으로 보이는데, 이는 매우 성가신 일입니다. 어떻게이 문제를 해결할 수 있습니까? getSaveFileName() 메서드의 마지막 인수를 "DontUseNativeDialog"로 변경하여 NonNativeSaveDialog를 사용하려고 시도했습니다.이 메서드는 제대로 작동하지만 좋지 않습니다. 제안 사항이 있으십니까?

인사말 도니

답변

0

당신은 비 정적 QFileDialog 방법을 사용하여 대화 상자를 직접 구성 할 수 있습니다. 이 같은 빈 문자열로 설정할 수있는 다음 QFileDialog::setDefaultSuffix()에 보면,이에 대한 QFileDialog docs를 따르

dialog.setDefaultSuffix(QString()); 

는 그런 것도 자동으로 파일의 끝에 추가되지 않습니다. Mac을 편리하게 테스트 할 수는 없지만 제대로 작동합니다.

관련 문제