В моем приложении я создаю HTML-файл, который я хочу открыть, нажав на кнопку. Так что мой файл с именем, например:Как использовать QDesktopServices :: openUrl с URL-адресом «file:», содержащим «#»?
QString file = "F:/the_path/to_the_/generated_html_file.html";
В Windows я изменить его на:
file = "file:///F:/the_path/to_the_/generated_html_file.html";
, так что я могу открыть его с помощью:
QDesktopServices::openUrl(QUrl(file));
и он открывается в браузер по умолчанию.
Но когда в пути или имени файла присутствует символ #
, он больше не работает, и кажется, что URL-адрес усечен сразу после #
.
Например, если я имя файла generated#_html_file.html
, я получаю сообщение об ошибке:
ShellExecute 'F:/the_path/to_the_/generated' failed (error 2).
Почему это происходит, и как я могу избежать этого?
В самом деле, я отправил свой ответ в то же время. Функция QUrl :: fromLocalFile (...) выполняет работу. – SteveTJS
@Steve - совершенно верно, я не использую 'QUrl' очень, поэтому я забыл об этом. Я поддержал ваш ответ и добавлю заметку к моему. –