2016-12-05 2 views
0

Je veux ouvrir un QFileDialog avec un répertoire par défaut spécifique pour sélectionner un fichier. Argument « url » de QFileDialog :: getOpenFileUrl semble être fait pour cela, mais je ne peux pas le faire fonctionner. Voici ce que j'ai fait:Comment définir le répertoire par défaut de QFileDialog sous Windows WinRT

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

Cela ne fonctionne pas, le répertoire par défaut n'est pas défini.

Je suis sous Windows 10 et je compiler avec msvc2015 pour la plateforme WinRT.

Edit: Il semble être un bug, je remplissais un billet: https://bugreports.qt.io/browse/QTBUG-57464

+0

Avez-vous tracé dans le 'getOpenFileUrl' pour voir ce qu'il fait avec le' url'? Si ce n'est pas le cas, créez une version de débogage de Qt pour pouvoir déboguer. Cela vous rendra plus productif. –

Répondre

0

Je pense que travailler directement avec la chaîne de chemin est plus classique en matière de fichiers locaux, car qurl est conçu pour faire face à toutes sortes d'URL. Donc, je suggère d'utiliser getOpenFileName à la place.

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

Mais si vous avez besoin d'utiliser qurl en quelque sorte, vous pouvez l'utiliser comme ça.

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

Malheureusement, les deux propositions ne fonctionnent pas. Avez-vous réussi à faire fonctionner Windows 10/WinRT/Qt 5.7? – Oswin

+0

Oui, j'ai essayé ceux-ci. Mes versions OS et Qt sont les mêmes que les vôtres. Notez que je n'utilise pas le fichier: /// préfixe –

+0

Oui, j'ai vu que le préfixe était supprimer. Désolé d'insister, mais êtes-vous sûr de compiler pour WinRT? Votre code fonctionne pour moi avec Desktop Qt 5.7 pour Windows 10 mais pas pour WinRT 5.7. – Oswin