2016-12-05 4 views
0

QFileDialog를 특정 기본 디렉터리로 열어 파일을 선택하려고합니다. "url"이 QFileDialog :: getOpenFileUrl 인 것 같습니다.하지만 제대로 작동하지 않습니다. 내가 한 일은 다음과 같습니다.Windows WinRT에서 QFileDialog의 기본 디렉터리를 설정하는 방법

QUrl url("file:///D:/"); 
QUrl path = QFileDialog::getOpenFileUrl(0, "Open File", url, tr("Database (*.db)")); 

기본 디렉토리가 설정되지 않았습니다.

저는 Windows 10을 실행 중이며 WinRT 플랫폼 용 msvc2015로 컴파일합니다.

편집 : 버그가 보인다, 내가 표 작성 : https://bugreports.qt.io/browse/QTBUG-57464

+0

당신이 추적 적이 일을해야합니까? 그렇지 않다면 Qt의 디버그 빌드를 만들어서 디버깅 할 수 있도록하십시오. 그것은 당신을 더 생산적으로 만들 것입니다. –

답변

0

버그 int Qt WinRT 포트로 인해 현재로서는 불가능합니다.

참조 : 버그가 수정되면 https://bugreports.qt.io/browse/QTBUG-57464

, T.M.의 대답은 그것이`url`으로 무엇을 볼 수있는`getOpenFileUrl`에

0

을 QUrl이 URL을 모든 종류의 처리를 위해 설계되어 있기 때문에 로컬 파일에 올 때 내가 경로 문자열과 직접 작업하는보다 전통적인 생각합니다. 그래서 getOpenFileName 대신 사용하는 것이 좋습니다.

QString defaultPath ="D:/"; 
QString ret = QFileDialog::getOpenFileName(0, "Open File", defaultPath, tr("Database (*.db)")); 

하지만 QUrl을 사용해야하는 경우에는 다음과 같이 사용할 수 있습니다.

QUrl url= QUrl::fromLocalFile("D:/"); 
QUrl path = QFileDialog::getOpenFileUrl(0, "Open File", url, tr("Database (*.db)")); 
+0

슬프게도 두 가지 명제가 작동하지 않습니다. Windows 10/WinRT/Qt 5.7에서 작동하도록 했습니까? – Oswin

+0

예, 이것들을 시도했습니다. 내 OS 및 qt 버전은 귀하의 것과 동일합니다. 참고 : 나는 file : /// 접두사를 사용하지 않습니다. –

+0

예 접두어가 제거 된 것을 보았습니다. 죄송하지만 WinRT 용으로 컴파일 하시겠습니까? 귀하의 코드는 Windows QT 5.7 for Windows 10에서는 작동하지만 WinRT 5.7에서는 작동하지 않습니다. – Oswin