码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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的应用,比如浏览器或者一些文档软件,看你设置的是什么

    结尾

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

  • 相关阅读:
    docker容器和宿主机相互拷贝文件方法
    关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用
    MySQL之JDBC及常见错误
    防御保护--入侵防御系统IPS
    Linux——【ftp环境搭建】
    计算机网络:最优路由条目优选
    【已解决】华为手机如何关闭智慧助手·今天(负一屏) | 华为荣耀八手机智慧助手开关介绍 | 华为手机关闭负一屏开关后,仍接收到负一屏服务相关通知提醒怎么办
    1Panel 升级 Halo报错
    【高等数学基础进阶】不定积分-练习 & 定积分与反常积分-补充
    jmh测试实践(针对不同准备数据测试)
  • 原文地址:https://blog.csdn.net/qq_16186465/article/details/126537175
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号