在windows或者linux中经常需要依赖系统软件打开某些文件,以下用打开pdf为例,贴上我用的几种方法。
方式一:用进程调用指定的PDF阅读软件。需要指定软件所在的绝对路径,当然设置环境变量也可以,但是相对比较麻烦,下面是windows上的示例代码,这个操作类似于linux上命令行操作。
//此例中事先将AcroRd32.exe路径添加到了环境变量中
QProcess *helpProcess = new QProcess(this);
QStringList argument("test.pdf");
helpProcess->start("AcroRd32.exe", argument);
方式二:调用系统默认的PDF阅读软件。在linux上貌似不行,但是不用设置环境变量,不依赖于指定的软件,例如系统有notepad++并设置了打开cpp文件默认用notepad++,则会用notepad++打开cpp文件,如果没有notepad++,则会用notepad打开,windows上推荐使用这种方式。
bool bRet = QDesktopServices::openUrl(QUrl::fromLocalFile("test.pdf"));
if (!bRet)
{
QMessageBox::warning