0

I am trying to open a pdf file with the default application through Qt's "DesktopServices" class.

But I am coming up with a ShellExecute

'file:///C:/PMPS/PMPSv1/Instuctionsforuse.pdf' failed (error 2). problem.

Here is my code:

#include <QDesktopServices>
#include <QUrl>

}

void Dialog::guideButtonClicked()
{
QDesktopServices::openUrl(QUrl("file:///C:/PMPS/PMPSv1/Instuctionsforuse.pdf"));
}
eyllanesc
  • 235,170
  • 19
  • 170
  • 241

1 Answers1

0

If you already has handlers in your Url (like file:// etc), or if your Url is already encoded and should be used without any conversion and changes, use QUrl::fromUserInput function. When the string is not already a valid URL, a best guess is performed, making various web related assumptions.

QUrl localfile = QUrl::fromUserInput("file:///C:/PMPS/PMPSv1/Instuctionsforus‌​e.pdf"); 

You can check if it is correct with:

 qDebug() << localfile.toLocalFile();
Xplatforms
  • 2,102
  • 17
  • 26