2017-03-20 7 views
2

내 응용 프로그램에서 많은 이미지를로드해야합니다. 마지막으로 열었던 파일을 선택하는 옵션을 사용하므로 마지막으로 선택한 파일을 알고 싶습니다. 문서는 말한다 :getOpenFileName - 마지막으로 열렸던 항목을 미리 선택하지 않음

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), 
              "/home", 
              tr("Images (*.png *.xpm *.jpg)")); 

파일 대화 상자의 작업 디렉토리를 디렉토리로 설정됩니다. dir에 파일 이름이 포함되어 있으면 파일이 선택됩니다.

마지막으로 열린 파일 경로를 어딘가에 저장 한 다음 "/ home"대신 삽입해야합니다. 하지만 그건 효과가 없습니다. 열린 파일 대화 상자에서 파일 이름은 몇 개의 마지막 문자로 제거되고 파일은 선택되지 않습니다. 무엇이 잘못 되었나요? 그게 버그 야?

내 현재 코드 :

선택에 스크롤에 파일로입니다 무엇을 달성하고자하는
QString fileName = QFileDialog::getOpenFileName(this, "Select file", 
    lastUsedFile, "Image Files (*.png *.jpg *.jpg *.bmp);; JPEG(*.jpg *.jpeg);; PNG(*.png);; BMP(*.bmp)"); 

if (!fileName.isEmpty()) 
    lastUsedFile = fileName; 

.

답변

2

QFileDialog :: getOpenFileName()의 세 번째 매개 변수입니다. 그런 다음 QSettings에 저장해야합니다. 예를 들어

: 내가 말했듯이 예상대로

QString fileName = QFileDialog::getOpenFileName(
     this, tr("Open file"), 
     Settings.value(DEFAULT_DIR).toString(), 
     tr("Images (*.png *.xpm *.jpg)"); 

if (!fileName.isEmpty()) { 
    QDir curDir; 
    Settings.setValue(DEFAULT_DIR, curDir.absoluteFilePath(fileName)); 
} 
+0

, 그 작동하지 않습니다. 여기에 예가 있습니다 :! [IMAGE] (https://image.ibb.co/k61oMF/dialog.jpg) 저장되는 내용과 대화 상자에로드되는 내용이 있습니다 (어떤 파일도 선택되지 않았기 때문에 이름이 유효하지 않습니다) – Pawel

+0

코드를 보여 주시겠습니까? – michalis

+0

실제로 대화 상자에로드되는 내용이 정확해야합니다. 스크린 샷의 텍스트에서 선택 항목을 볼 수 있습니까? 홈 버튼을 누르면 입력에 파일의 전체 이름이 표시됩니다. Windows에서 기본적으로 시스템을 사용하고 있기 때문에 이것이 Qt 문제인지 또는 표준 파일 열기 대화 상자의 문제인지는 알 수 없습니다. 그러나'DontUseNativeDialog' 옵션으로 그것을 무시할 수 있습니다. –