当前位置: 首页 > news >正文

QT的Qporcess功能的使用

 

具体实现代码如下:

#include <QProgressBar>//必须要包含的头文件
#include <QProcess>// 创建一个QProgressBar对象QProgressBar *progressBar = new QProgressBar(this);QProcess *proces;process_show=new process;// 设置进度条的最小值和最大值progressBar->setRange(0, 100);//设置位置progressBar->setGeometry(10, 30, 300, 30);//    // 设置进度条的当前值//    progressBar->setValue(50);// 设置进度条的文本显示格式progressBar->setFormat("当前进度为:%p%");

下面是一些官方文档里面对于QProcess的使用注意事项

QProcess::ProcessError

此枚举描述 报告的不同类型的错误。

QProcess::FailedToStart0进程无法启动。调用的程序丢失,或者您可能没有足够的权限来调用该程序。
QProcess::Crashed1成功启动后一段时间,进程崩溃了。
QProcess::Timedout2最后的等待...() 函数超时。的状态不变,可以尝试调用等待...() 再次。
QProcess::WriteError4尝试写入进程时出错。例如,进程可能未运行,或者可能已关闭其输入通道。
QProcess::ReadError3尝试从进程中读取时出错。例如,进程可能未运行。
QProcess::UnknownError5发生未知错误。这是 () 的默认返回值。

QProcess::ProcessState

此枚举描述了 的不同状态。

QProcess::NotRunning0进程未运行。
QProcess::Starting1该过程正在启动,但尚未调用该程序。
QProcess::Running2进程正在运行,已准备好进行读取和写入。

void QProcess::finished(int exitCode, QProcess::ExitStatus exitStatus)

该过程完成后会发出此信号。是进程的退出代码(仅对正常退出有效),并且是退出状态。该过程完成后,其中的缓冲区仍然完好无损。您仍然可以读取进程在完成之前可能已写入的任何数据。

信号完成在此类中过载。为了使用函数指针语法连接到此信号,Qt提供了一个方便的帮助程序来获取函数指针,如以下示例所示:

connect(process, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),[=](int exitCode, QProcess::ExitStatus exitStatus){ /* ... */ });

void QProcess::kill()

终止当前进程,使其立即退出。

在Windows上,kill()使用TerminateProcess,在Unix和macOS上,SIGKILL信号被发送到进程。

void QProcess::setupChildProcess()

此函数在子进程上下文中调用,就在程序在 Unix 或 macOS 上执行之前(即,在 之后,但在 之前)。重新实现此函数以执行子进程的最后一分钟初始化。

class SandboxProcess : public QProcess
{...protected:void setupChildProcess() override;...
};void SandboxProcess::setupChildProcess()
{// Drop all privileges in the child process, and enter// a chroot jail.
#if defined Q_OS_UNIX::setgroups(0, 0);::chroot("/etc/safe");::chdir("/");::setgid(safeGid);::setuid(safeUid);::umask(0);
#endif
}

您不能从此函数退出进程(例如,通过调用 exit()。如果需要在程序开始执行之前停止程序,解决方法是发出  finished(),然后调用 exit()。

此函数仅在 Unix 和 macOS 上调用。在Windows和QNX上,它不被调用。

http://www.lryc.cn/news/205563.html

相关文章:

  • 【图灵诸葛】jvm笔记
  • 数据安全小课堂开讲啦!看这里!
  • 单片机矩阵键盘
  • 横坐标日期等间隔绘图 python示例代码
  • photoshop2024免费插件Portraiture3
  • NewStarCTF2023week4-More Fast(GC回收)
  • 和鲸赞助丨第16届中国R会议暨2023 X-AGI大会通知
  • Python第三方库 - Flask(python web框架)
  • c# sqlite 修改字段类型
  • [Pytorch] 保存模型与加载模型
  • AES解密报错,Input length must be multiple of 16 when decrypting with padded cipher
  • 电子学会C/C++编程等级考试2023年05月(三级)真题解析
  • 【2023_10_21_计算机热点知识分享】:机器学习中的神经网络
  • app开发者提升第四季度广告收入的方法
  • #电子电器架构 —— 车载网关初入门
  • 系统工程利用计算机作为工具
  • MathType7.4绿色和谐版数学公式编辑器
  • JAVA代码审计-纵向越权漏洞分析
  • 【PG】PostgreSQL逻辑备份(pg_dump)
  • JVM、JRE、JDK
  • Latex 插入矢量图
  • git:删除上一次 commit 中的某个文件,并重新提交
  • proxy解决跨域问题
  • Ubuntu源码编译samba
  • conda虚拟环境配置
  • 如何制作自己的数字人
  • JAVA毕业设计103—基于Java+Springboot+vue的药店管理系统(源码+数据库)
  • LeetCode66——加一
  • CV计算机视觉每日开源代码Paper with code速览-2023.10.23
  • C语言 sizeof 函数内部进行计算