• QT 在主机默认PDF查看应用中打开PDF文档(如通过菜单栏打开使用手册)


    QT 在主机默认PDF查看应用中打开PDF文档(如通过菜单栏打开使用手册)

    前言

    在软件制作完成后,我们都需要告诉用户如何使用软件,《使用手册》是一个非常必要的输出文件,能够让用户自行了解软件的使用方法。我观察到很多上位机会在菜单栏中加入打开使用手册的选项,可以直接通过点击打开使用手册,值得学习一下并用在自己的软件中。
    下面是我在网上找到的一些方法

    通过执行CMD命令打开

    这个的话无疑会受到平台限制,Linux系统中应该就不能这样用了

    QString currentPath = QCoreApplication::applicationDirPath(); //获取当前项目路径
    QProcess p(0);
    //使用CMD打开使用手册文件,文件放于执行程序同目录doc文件夹中
    p.start("cmd", QStringList()<<"/C"<<QString("%1/doc/使用手册.pdf").arg(currentPath));
    p.waitForStarted();
    p.waitForFinished();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这种方法需要把手册放在特定的目录位置,如果用户把文件破坏了(比如移到了其他位置),那么就不能通过上位机操作来打开PDF了。
    我们测试的时候就需要把文件放在构建完成的目录中
    在这里插入图片描述
    在这里插入图片描述

    使用QDesktopServices类打开

    要使用的话需要引入头文件

    QString currentPath = QCoreApplication::applicationDirPath(); //获取当前项目路径
    QString filePath = QString("%1/doc/使用手册.pdf").arg(currentPath); //文件绝对路径
    QDesktopServices::openUrl(QUrl::fromLocalFile(filePath));
    
    • 1
    • 2
    • 3

    这种方法也需要将文件放在特定的构建项目目录中,和上面一样

    注意

    这个打开PDF的方式使用电脑默认的打开PDF的应用,比如浏览器或者一些文档软件,看你设置的是什么

    结尾

    我们可以发现,这两种方法都存在同一个缺点,需要特定的项目文件架构,而且打包后还要手动把文件放到项目中,比较麻烦。不知道能不能通过添加资源文件,直接打开资源文件的方式来操作,而且资源文件打包的时候也会带上,不需要手动添加。有无大佬救救我。

  • 相关阅读:
    Python 操作 Excel,如何又快又好?
    卡尔曼滤波器的通俗理解
    LDO(线性稳压器)设计检查
    使用 React Flow 构建一个思维导图应用
    企业怎样申请SSL证书?
    设计模式day11
    AI是未来?——神经网络篇
    电机应用-控制系统、PID
    数据库审核工具SQLE接口调用
    用智能插件(Fitten Code: Faster and Better AI Assistant)再次修改vue3 <script setup>留言板
  • 原文地址:https://blog.csdn.net/qq_16186465/article/details/126537175