Dans mon application, je génère un fichier HTML que je veux ouvrir en cliquant sur un bouton. Donc, mon fichier est nommé, par exemple:Comment utiliser QDesktopServices :: openUrl avec l'URL 'file:' contenant '#'?
QString file = "F:/the_path/to_the_/generated_html_file.html";
Sous Windows je changer à:
file = "file:///F:/the_path/to_the_/generated_html_file.html";
pour que je puisse l'ouvrir avec:
QDesktopServices::openUrl(QUrl(file));
et ouvre en le navigateur par défaut.
Mais lorsque le caractère #
est présent dans le chemin ou le nom de fichier, il ne fonctionne plus et il semble que l'URL soit tronquée juste après le #
.
Par exemple, si je le nom du fichier generated#_html_file.html
, je reçois ce message d'erreur:
ShellExecute 'F:/the_path/to_the_/generated' failed (error 2).
Pourquoi est-ce que cela se produise, et comment puis-je éviter?
En effet, j'ai posté ma réponse en même temps. La fonction QUrl :: fromLocalFile (...) fait le travail. – SteveTJS
@Steve - tout à fait raison, je n'utilise pas beaucoup 'QUrl', donc j'avais oublié ça. J'ai upvoted votre réponse, et ajouterai une note à la mienne. –