2009-12-23 6 views
9

QFileDialog을 사용하여 파일을 저장하고 확장자 (예 : * .pdf)를 지정하고 사용자가이 확장자가없는 이름을 입력하면 저장된 파일에도이 확장자가 없습니다.
예 - 코드 : 사용자가 이름으로 "foo는"을 입력하면 현재 파일이 없습니다 "foo.pdf"로 "foo는"로 저장됩니다 QFileDialog : 파일을 저장할 때 확장자를 자동으로 추가 하시겠습니까?

QFileDialog fileDialog(this, "Choose file to save"); 
fileDialog.setNameFilter("PDF-Files (*.pdf)"); 
fileDialog.exec(); 
QFile pdfFile(fileDialog.selectedFiles().first()); 

. 따라서 QFileDialog은 확장자를 자동으로 추가하지 않습니다. 내 질문 : 어떻게 변경할 수 있습니까?

+1

Qt는 문서 내가 작품의 많은 것처럼 같은 행동을 할 것처럼 –

+1

이 보이는() 당신이 가능 QFileDialog :: setDefaultSuffix를 놓친 수 있는지 궁금하네요, 명확하고 포괄적이다. 내가 놓친 게 있니? –

+3

@Julien L .: 나는 보통 질문에 답하려고 노력하지만, 특히 이와 같은 간단한 쿼리에 대해서는 의문의 여지가 없습니다. 그러나 OP가 내가 링크 된 페이지를 열고 "확장 기능"을 검색한다면 그는 "setNameFilter"에 대한 예제 만 찾았을 것이며 기본 접미사와 관련된 다른 것은 찾지 못했을 것입니다. –

답변

17

당신은 QFileDialog::setDefaultSuffix()를 사용할 수 있습니다 : 다른 접미사를 지정하지 않은 경우

이 속성은 파일 이름에 추가 된 접미사를 보유하고 있습니다.

이 속성은 이미 접미사가없는 경우 파일 이름에 추가 할 문자열을 지정합니다. 접미사는 일반적으로 파일 유형을 나타내는 데 사용됩니다 (예 : 'txt'는 텍스트 파일을 나타냄). QFileDialog :: getSaveFileName() :

+3

허용되는 파일 형식이 여러 개인 경우 어떻게 할 수 있습니까? 예를 들어, "All-Files (* .pdf * .txt) ;; PDF- 파일 (* .pdf)"이고 두 번째 항목 인 PDF- – manatttta

+1

@manatttta 'QFileDialog'를 서브 클래스 화하고 첫 번째 파일 확장자에 대한 필터 문자열을 검색하는 슬롯에'filterSelected()'신호를 연결 한 다음'setDefaultSuffix()'를 호출하는 것이 가능합니다 . –