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

网站发布与推广计划手机应用商店app下载

网站发布与推广计划,手机应用商店app下载,用wordpress做企业网站视频教程,想学做电商怎么加入Qt 是一个跨平台C图形界面开发库#xff0c;利用Qt可以快速开发跨平台窗体应用程序#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置#xff0c;实现图形化开发极大的方便了开发效率#xff0c;本章将重点介绍如何运用QProcess组件实现针对进程的控制管理…Qt 是一个跨平台C图形界面开发库利用Qt可以快速开发跨平台窗体应用程序在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置实现图形化开发极大的方便了开发效率本章将重点介绍如何运用QProcess组件实现针对进程的控制管理等。 当你在使用Qt进行跨平台应用程序开发时经常需要与外部进程进行交互这时就可以利用Qt的QProcess模块。QProcess模块提供了启动和控制外部进程的功能能够执行外部命令、运行其他可执行文件以及与外部进程进行通信。通过QProcess可以方便地执行命令行命令、调用系统工具、执行脚本等。QProcess还可以捕获外部进程的输出以及监视外部进程的运行状态从而实现更灵活、高效的进程管理。 以下是QProcess类的一些常用函数及其解释的表格 函数描述start(const QString program, const QStringList arguments)启动一个新的进程program参数指定要执行的程序arguments参数指定传递给程序的参数列表。startDetached(const QString program, const QStringList arguments)启动一个新的进程但不会等待进程退出也不会将输出传递给调用进程。waitForStarted(int msecs 30000)等待进程启动如果在指定时间内进程没有启动将返回false。waitForFinished(int msecs 30000)等待进程退出如果在指定时间内进程没有退出将返回false。readAllStandardOutput()读取进程的标准输出并返回为QByteArray。readAllStandardError()读取进程的标准错误输出并返回为QByteArray。write(const QByteArray data)向进程的标准输入写入数据。closeWriteChannel()关闭进程的标准输入。kill()终止进程。terminate()终止进程。start(const QString program)启动一个新的进程program参数指定要执行的程序。setWorkingDirectory(const QString dir)设置进程的工作目录。state()返回进程的当前状态。error()返回进程的错误状态。pid()返回进程的进程ID。waitForBytesWritten(int msecs 30000)等待写入到进程的数据已经被完全写入。waitForReadyRead(int msecs 30000)等待进程有数据可读。startDetached(const QString program)启动一个新的进程但不会等待进程退出也不会将输出传递给调用进程。setProcessChannelMode(QProcess::ProcessChannelMode mode)设置进程通信模式可选值包括QProcess::SeparateChannels和QProcess::MergedChannels。 这些函数提供了控制进程的各种方法可以实现启动、监视、控制和与外部进程进行交互的功能。 进程控制模块可以实现对特定进程的启动关闭本章将以执行命令行为例通过调用Start()可以拉起一个第三方进程。 QProcess类的start()函数有几种不同的重载形式但最常用的是以下形式 bool QProcess::start(const QString program, const QStringList arguments, QIODevice::OpenMode mode ReadWrite )函数用于启动一个新的进程并执行指定的程序program参数。arguments参数指定了传递给程序的参数列表它是一个QStringList类型的参数可以为空。mode参数指定了启动进程时打开的模式默认为ReadWrite。函数返回一个bool类型的值表示进程是否成功启动。 当调用start()执行命令后我们则可以通过readAllStandardOutput()函数从进程的标准输出中读取所有可用的数据并将其返回为 QByteArray 对象。 QByteArray QProcess::readAllStandardOutput()这个函数没有参数它会立即返回当前可用的标准输出数据并将输出数据作为字节数组返回。如果没有可用的输出数据它将返回一个空的字节数组。 当然了与之对应的readAllStandardError()是函数该函数可以用于从进程的标准错误输出中读取所有可用的数据并将其返回为 QByteArray 对象。 QByteArray QProcess::readAllStandardError()该函数同样没有参数它会立即返回当前可用的标准错误输出数据并将输出数据作为字节数组返回。如果没有可用的错误输出数据它将返回一个空的字节数组。 1.1 获取进程信息 此处我们以输出系统进程信息为例通常可以调用tasklist /FO CSV来获取系统中的进程列表并将其输出为CSV格式通过调用如下函数则可以获取到系统进程信息。 process.start(tasklist, QStringList() /FO CSV);此时通过调用readAllStandardOutput函数我们可以将缓冲区内的数据读出并将其放入到一个QString类型变量内 QString output process.readAllStandardOutput();当具备了这个列表后就可以根据冒号来逐行读入并切割通过循环的方式将其追加到treeWidget组件内并以此来实现展示的效果 void MainWindow::on_pushButton_clicked() {CallProcess();ui-treeWidget-clear();QProcess process;process.start(tasklist, QStringList() /FO CSV);if (process.waitForFinished()){QString output process.readAllStandardOutput();output.replace(\, );QStringList lines output.split(\n);// 跳过第一行标题for(int i 1; i lines.size(); i){QStringList fields lines[i].split(,);// 确保至少有五个字段if(fields.size() 5){QStringList rowData;for(int j 0; j 5; j){rowData fields[j].trimmed();}ui-treeWidget-addTopLevelItem(new QTreeWidgetItem(rowData));}}// 设置列标题ui-treeWidget-setHeaderLabels(QStringList() 进程名称 PID 会话名称 Session 内存占用);} else{QTreeWidgetItem *item new QTreeWidgetItem(ui-treeWidget);item-setText(0, Failed to execute tasklist command.);} }运行后当点击输出系统进程时则可以看到完整的进程输出效果如下图所示 使用此方法我们可以很好的读取到系统中的各种信息只要能够合理的过滤出想要的字段即可当需要输出系统信息时我们可以通过process.start(systeminfo)调用系统命令获取到如下代码所示 void MainWindow::on_pushButton_2_clicked() {ui-treeWidget-clear();// 获取系统信息QProcess process;process.start(systeminfo);if (process.waitForFinished()){QByteArray output process.readAllStandardOutput();// 使用正确的文本编码对输出进行解码QTextCodec *codec QTextCodec::codecForName(GBK);QString text codec-toUnicode(output);QStringList lines text.split(\n);for (const QString line : lines){// 解析系统信息添加到 QTreeWidget 中QStringList fields line.split(:, Qt::SkipEmptyParts);if (fields.size() 2){QString property fields[0].trimmed();QString value fields[1].trimmed();QTreeWidgetItem *item new QTreeWidgetItem(ui-treeWidget);item-setText(0, property);item-setText(1, value);}}// 设置列标题ui-treeWidget-setHeaderLabels(QStringList() 系统信息 数值);} else{QTreeWidgetItem *item new QTreeWidgetItem(ui-treeWidget);item-setText(0, Failed to execute systeminfo command.);} }运行后当用户点击输出系统信息按钮时因systeminfo运行时间较长所以需要等待一段时间输出效果如下图所示
http://www.pierceye.com/news/878263/

相关文章:

  • 网站建设策划包括哪些内容展馆设计图
  • 网站建设中 翻译六安市 网站集约化建设
  • 全国卫生机构建设管理系统网站公司网站维护费用计哪个科目
  • 学做川菜最好的网站商标综合查询
  • 网站开发培训 价格哪些网站可以找到兼职做报表的
  • 网站建设功能分为几种北京自考网址
  • 购买网站域名怎么做会计分录广告机免费投放
  • 网上做网站赚钱深圳市无限空间工业设计有限公司
  • 商贸网站建设怎么查看wordpress版本
  • 电子商务网站建设哪本教材比较适合中等专业学校用网站建设yankt
  • 局域网网站建设需要什么条件企业建网站的目的
  • 高校专业建设网站桂林漓江竹筏
  • 自已做个网站怎么做网站网络的可用性
  • 深圳网站设计建设永州做网站
  • 怎么制作网站应用wordpress 淘宝客赚钱
  • 网站在政务新媒体建设方案打开手机网站速度慢
  • 网站备案表服务类网站模板
  • 个人网站维护费用淮安注册公司
  • 网站提交做海鱼的网站
  • 建设网站业务竞争大唯一做魅惑的网站
  • 建设学校网站的意义更换wordpress图标
  • 环保局网站如何做备案证明在线代理服务器网页版
  • 十佳网站武昌做网站哪家好
  • wordpress调用同分类最新文章seo营销网站的设计标准
  • 免费下载网站有哪些连云港网络公司排名
  • 如何迅速建企业网站毕设做网站需要什么技术准备
  • 可以做音基题的音乐网站公司网页设计怎么弄
  • 益阳营销型网站建设乌鲁木做兼职的网站
  • 如何建单位网站怎么让别人找你做网站
  • 青海建设厅职称网站建设小程序怎么挂失