2012-12-25 3 views
2

을 지정하는 방법을 나는 사용자의 홈 디렉토리를 표시한다 파일 대화 상자를 엽니 다 시도 :QFileDialog는 홈 디렉토리

QString fileName = QFileDialog::getOpenFileName(this, 
        tr("Select database"), QDir::homePath(), 
        tr("Database Files (*.db *.sqlite)")); 

QFileDialog 항상 응용 프로그램이 시작된 곳에서 한 디렉토리로 시작하는 문제 표준시 . 내가 뭘 잘못하고 있는거야? BTW

: 나는 맥 OS X의 맥 OSX에서

답변

6

에 Qt는 5를 사용하고는, QDir::homePath() HOME 환경 변수의 내용을 반환합니다. 따라서이 변수가 비어 있으면 빈 문자열을 반환합니다.

Qt Creator의 프로젝트 환경에서 빌드 환경 아래의 '시스템 환경 지우기'옵션이 선택되지 않았는지 확인하십시오. 이 상자를 체크하면 Qt는 기본적으로 프로그램의 모든 환경 변수의 값을 덮어 쓰므로 비어 있습니다.

1

앞에서 제안한대로 QDir::homePath()을 사용하거나 Qt5의 QStandardPaths 클래스의 사용을 고려하십시오.

+0

OP는 이미'homePath()'를 사용 중입니다. 그리고'QStandardPaths'와 마찬가지로, 홈 디렉토리를 질의 할 때 여전히'QDir :: homePath()'를 호출하는 것처럼 보입니다 : http://qt.gitorious.org/qt/qtbase/blobs/stable/src/corelib/io /qstandardpaths_mac.cpp#line161 – jdi

+0

@jdi 이것을 지적 해 주셔서 감사합니다. –

+0

QDir : homePath를 사용하고 있지만 QFileDialog가이를 무시한 것 같습니다. 하드 코딩 된 값조차 무시됩니다. – rogergl