2013-02-16 6 views
1

Mac OS-X에서는 일반적으로 키보드로 경로를 입력 할 필요없이 디렉토리 대화 상자가 표시됩니다. 이것은 OS-X에서 Qt 애플리케이션을 빌드 할 때 기본 동작으로 보인다.Qt on Mac : 원하는 파일 경로를 수동으로 쓸 수있는 파일 대화 상자를 얻는 방법?

수동으로 경로를 입력하도록 지정하려면 어떻게해야합니까?

+2

'Command + Shift + G '는 어떨까요? 아니면 어떤 대화를하고 있습니까? – elmigranto

+1

사람들이 선택한 플랫폼에서 익숙한 것들을 변경하려고 시도하지 마십시오. –

+1

위에서 언급했듯이 (⌘-⇧-G) 플랫폼 별 방법이 있습니다. 따라서 대화 상자에서 이미 허용됩니다. 단지 플랫폼에 익숙하지 않은 것입니다. –

답변

4

QFileDialog의 정적 메서드로 생각한 원시 대화 상자를 사용하는 것이 좋습니다. Apple에서 제공하는 새로운 샌드 박싱 요구 사항을 사용하려면 응용 프로그램의 표준 대화 상자를 사용하여 파일 시스템에 액세스해야합니다. 흥미로운 사실은 실제로 샌드 박스 응용 프로그램에서 사용자에게 제공되는 대화 상자는 Powerbox라고하는 것입니다. 자세한 내용은 here in the NSPanel documentation을 참조하십시오.

elmigranto가 Mac의 모든 파일 대화 상자에서 지적한 것처럼 command + shift + g을 눌러 이동할 경로를 입력 할 수 있습니다.

참고 : 최신 Qt 버전에서 설명서는 QFileDialog의 정적 함수를 사용하여 PowerBox를 통과하는 기본 대화 상자를 얻도록 수정 한 것임을 암시합니다. 나는 그것을 직접 시도하지 않았으며 bug on the issue은 Qt 5.5.0 및 5.6.0에 대해 공개되어 있습니다. 그러나 QFileDialog를 재정의해도 네이티브 대화 상자는 표시되지 않습니다. 사용자 정의 된 대화 상자가 필요하면 NSSavePanel 경로로 이동하는 것이 좋습니다.

2

QFileDialog과 같은 정적 함수 (예 : getExistingDirectory()getOpenFileName())를 사용하면 기본 OS X 파일 대화 상자를 사용할 수 있습니다. 그러나 정적 함수를 사용하지 않고 자신 만의 QFileDialog을 만들면 setFileMode()을 호출하여 사용자가 대화 상자에서 선택해야하는 항목을 지정할 수있는 Qt 파일 대화 상자를 가져와야합니다. Qt 파일 대화 상자를 사용하면 대화 상자에서 수동으로 경로를 변경할 수 있습니다.

물론 사용자가 직접 디렉토리 경로를 입력하려는 경우 간단한 QInputDialog을 사용할 수도 있습니다.

+1

이 기능에 대한 버그가 있습니다. 나는 당신이 당신의 app을 sandbox 할 필요가 없다면 문제가되지 않는다고 생각하지만, 당신이 문제를 일으킨다면. Qt 5.6부터 깨짐 : https://bugreports.qt.io/browse/QTBUG-48414 – Atifm