Qt依赖平台软件打开PDF

       在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(this, QStringLiteral("提示"), QStringLiteral("系统未安装PDF阅读软件,请安装\n一款后再执行此操作!"));
}

      方式三:使用系统函数。在linux可以使用system执行命令行。ubuntu上可以用evince打开PDF文件。

int ret = system("evince test.pdf");
if(ret) 
{
    QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("PDF文档打开失败!error code:%1").arg(ret));
}

      其他文件也可以用这种方式打开。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值