首页 > 其他分享 >Qt使用绿色pdf阅读器打开文件

Qt使用绿色pdf阅读器打开文件

时间:2024-09-10 23:47:29浏览次数:11  
标签:Qt process waitForFinished 进程 arguments 阅读器 qDebug pdf

1.下载SumatraPDF

2.设置

 3.代码

void MainWindow::on_pushButton_clicked()
{
    QProcess *process = new QProcess();
    QString filePath = "C:\\Users\\jude\\Desktop\\su\\11.pdf";
    QString sumatraPath = "C:\\Users\\jude\\Desktop\\su\\SumatraPDF-3.5.2-64.exe"; // 请根据实际安装路径修改
    // 设置启动的程序和参数
    QStringList arguments;
    arguments << filePath;

    // 启动Sumatra PDF
    process->start(sumatraPath, arguments);

    // 等待进程启动
    if (!process->waitForStarted()) {
        qDebug() << "Failed to start Sumatra PDF.";
        return;
    }

    // 获取进程的PID
    qint64 pid = process->processId();
    qDebug() << "Sumatra PDF started with PID:" << pid;

    QTimer::singleShot(5000, [process]() {
        qDebug() << "Terminating Sumatra PDF...";
        process->terminate(); // 尝试优雅地终止进程
        if (!process->waitForFinished(3000)) { // 等待3秒
            qDebug() << "Sumatra PDF did not terminate gracefully. Killing it...";
            process->kill(); // 强制终止进程
            process->waitForFinished(); // 等待进程结束

            delete process;
        }
        qDebug() << "Sumatra PDF closed.";
    });

    qDebug() << "Sumatra PDF finished.";
}

 

标签:Qt,process,waitForFinished,进程,arguments,阅读器,qDebug,pdf
From: https://www.cnblogs.com/judes/p/18407481

相关文章

  • 【Qt】事件分发器
    事件分发器概述        在Qt中,事件分发器(EventDispatcher)是⼀个核⼼概念,⽤于处理GUI应⽤程序中的事件。事件分发器负责将事件从⼀个对象传递到另⼀个对象,直到事件被处理或被取消。每个继承⾃QObject类或QObject类本⾝都可以在本类中重写boolevent(QEve......
  • Python Pyqt5 将ui文件转换成py文件
    命令行pyuicyour_ui_file.ui-ooutput_file.py如果是虚拟环境,则需要提前进入虚拟环境中执行pyuic命令uitopy文件的使用如果是ui文件转换过来的py文件,不要直接在此py文件中编写代码。如果你的ui文件发生变换就需要重新生成py文件,这个时候新的py文件就会覆盖历史的。正确使......
  • MQTT是什么?
    1.MQTT是什么?         MQTT协议全称是(MessageQueuingTelemetryTransport),即消息队列遥测传输协议。是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上,我们知道TCP协议本身就具有高可靠性的特点,因此基于其上的MQTT协议同样......
  • PDF怎么转PPT?用这款在线AI工具轻松搞定!
    ppt和pdf,这两个日常办公最常用的文档格式,想把ppt转为pdf,让演示文稿不被随意修改,且可以极大保证兼容性,不影响ppt的展示效果,该怎么做到呢?另一方面,有时候我们希望将pdf转为可编辑的ppt,能够自由修改或是复用其中的内容,这又该如何实现转换呢?今天这篇文章,就着这两个问题,想和大家分......
  • 【专题】2024年中国折叠屏手机市场与消费趋势研究报告合集PDF分享(附原数据表
    原文链接:https://tecdat.cn/?p=37645中国智能手机市场目前仍处于整体增长瓶颈期,增长复苏未达预期,消费者换机预期周期不断延长,使得行业对破局点的探寻更为紧迫。与此同时,中端消费者购机呈现出消费降级与升级的分化态势,不过更多人会选择体验更好、配置更优的产品以延长使用时间。ID......
  • Python 基础学习路线图【有PDF版】
    从遗忘到铭记:我的Python学习之旅曾经,学习对我来说就像一场匆匆的旅行——沿途的风景虽美,但转瞬即逝。除了那些在工作中反复磨练的技能,大多数知识仿佛过客般匆匆离去。尽管日复一日地忙碌着,每当被问及“你究竟学到了什么?”时,脑海中却一片空白。归其原因还是因为学习的内容比较杂乱......
  • PyQt GUI开发基础-1
    (目录)一、QFileDialog文件对话框控件方法说明getOpenFileName()获取一个打开文件的文件名getOpenFileNames()获取多个打开文件的文件名getSaveFileName()获取保存的文件名getExistingDirectory()获取一个打开的文件夹setAcceptMode()设置接收模式,取......
  • ubuntu20.04 Qt6引用dcmtk库实现dicom文件读取和字符集转换
    1环境问题安装完Qt6,新建Qt/QtQuickCMake工程编译出现如下错误:Foundpackageconfigurationfile:Qt6Config.cmakebutitsetQt6FOUNDtoFALSEsopackage"Qt6"isconsideredtobeNOTFOUND.原因:这是因为系统中缺少OpenGL库,可以安装libgl1-mesa-dev解决方法:su......
  • 大模型书籍推荐:大模型黑书《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处
    一、内容介绍Transformer正在颠覆AI领域。这本书将引导你使用HuggingFace从头开始预训练一个RoBERTa模型,包括构建数据集、定义数据整理器以及训练模型等。《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》分步展示如何微调GPT-3等预训练模型。研究机器翻译、语音转......
  • 今日分享 | AI大模型学习者的知识基座《实战AI大模型》(附PDF)
    前言大型深度学习模型(简称AI大模型)以其强大的表征能力和卓越的性能,在自然语言处理、计算机视觉、推荐系统等领域均取得了突破性的进展。尤其随着AI大模型的广泛应用,无数领域因此受益。《实战AI大模型》是一本兼具深度和广度的大模型入门书籍,它深入浅出地诠释了AI大模型的核心概念和......