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

域名买好怎么开始做网站线上投票怎么做

域名买好怎么开始做网站,线上投票怎么做,新手怎么学做电商,免费打广告的平台appQProcess 可用于完成启动外部程序,并与之交互通信。 一、启动外部程序的两种方式   1)一体式:void QProcess::start(const QString & program,const QStringList &arguments,OpenMode mode ReadWrite)     外部程序启动后&…

QProcess
可用于完成启动外部程序,并与之交互通信。
一、启动外部程序的两种方式
  1)一体式:void QProcess::start(const QString & program,const QStringList &arguments,OpenMode mode = ReadWrite)
    外部程序启动后,将随主程序的退出而退出。
  2)分离式:void QProcess::startDetached(const QString & program,const QStringList & arguments,const QString&workingDirectory=QString(),qint64 *pid =0)
    外部程序启动后,当主程序退出时并不退出,而是继续运行。


二、启动之前需要做的工作:
  启动一个外部程序,需要传递外部程序的路径和执行参数,参数用QStringList来代入。
  1)设置路径
    void QProcess::setProgram(const QString & program)
  2)设置参数【可选】
    void QProcess::setArguments(const QStringList & arguments)
  3)启动
  选择启动函数(两种方式)


三、启动状态
  外部程序未启动时,其状态是NotRunning;
  当启动时,其状态转变为Starting,正在启动,但此时还未调用起来;
  启动之后,继续变为Running,同时发射出started()信号,此时,可以对QProcess进行读写操作了;
  当退出时,其状态改为NotRunning,并发射出finished()信号。finished()信号会携带退出码和退出状态,可以分别通过exitCode()和exitStatus()来获得。
  当发生错误时,QProcess会发出一个error()信号,同样的,也可以通过error()来获得其错误类型,通过state()获得当前程序的状态。


四、QProcess与QIODevice
  QProcess继承于QIODevice,因此,我们可以把它当作一个I/O设备进行读写操作。

五、交互
  QProcess有两种预定义的输入通道:标准输出stdout与标准错误stderr.
  通过setReadChannel可以读取输出的通道。
  当通道的数据准备就绪时,QProcess会发出readyRead()信号。如果是标准输出,则发出readyReadStandardOutput()信号。如果是标准错误,

  则发出readyReadStandardError()信号。
  常用的读取方式有read(),readAll()或getChar(),也可以通过readAllStandardOutput()和readAllStandardError()读取标准输出和标准错误通道中的数据。
  某些程序需要设置环境才能进行特殊的操作。可以通过setEnvironment()来设置环境变量,通过setWorkingDirectory()来设置工作目录,默认的工作路径是当前调用程序的工作路径。

六、同步API
  QProcess提供了一系列的函数以提到事件循环来完成同步操作:
  1)waitForStarted()//阻塞,直到外部程序启动
  2)waitForReadyRead()//阻塞,直到输出通道中的新数据可读
  3) waitForBytesWritten()//阻塞,直到输入通道中的数据被写入
  4) waitForFinished() //阻塞,直到外部程序结束
  如果在主线程中调用这些函数,可能会造成当前用户界面不响应。

七、QProcess进程类
  Qt提供了一个QProcess类用于启动外部程序并与之通信,启动一个新的进程的操作非常简单,只需要将待启动的程序名称和启动参数传递给start()函数即可。
   例:
    Qobject *parent;
    QString program = "tar";
    QStringList arguments;
    arguments<<"czvf"<<"backup.tar.gz"<<"/home";
    QProcess *myProcess= new QProcess(parent);
    QProcess->start(program,arguments);
  当调用start()函数后,myProcess进程立即进入启动状态,但tar程序尚未被调用,不能读入标准输入输出设备。当进程完成启动后就进入“运行状态”并向外发送出
  started()信号,在输入输出方面,QProcess将一个进程看做一个类型的I/O设备,可以像使用QTcpSocket读写流类型的网络连接一样来读写一个进程。

  可以通过QIODevice::write()函数向所启动的进程的标准输入写数据,也可以通过QIODeivic::read()、QIODevice::readLine()、QIODevice::getChar()函数从这个进程的标准输出读数据。此外由于QProcess是从QIODevice类继承而来的。
Qt定义了如下的进程错误代码:
错误常量 值 描述
  QProcess::FailedToStart 0 进程启动失败
  QProcess::Crashed 1 进程成功后崩溃
  QProcess::Timedout 2 最后一次调用waitFor...()函数超时。此时QProcess状态不变,并可以再次调用waitFor...()类型的函数
  QProcess::WriteError 3 向进程中写入数据时出错。如进程尚未启动,或者输入通道被关闭时。
  QProcee::ReadError 4 从进程中读取数据时出错。如进程尚未启动时
  QProcess::UnknownError 5 未知错误。这也是error()函数返回的默认值。


八、进程的标准输出:
  stdout:通常用于控制台下输出
  stderr:通常用于进程打印错误
  它们本质上是两个独立的数据流
  可以通过调用setReadChanned()函数设置当前的读通道
  当有可读数据时Qt将发出readyRead()信号
  如果是标准输出和标准错误通道中读取数据,还会发出readyReadStandardOutput()信号
  readAllStandardOutput()函数从标准输出通道中读取数据
  readAllStandardErrot()函数从标准错误通道中读取数据
  在进程启动以前以MergedChannels参数调用setReadChannelMode()函数可以把标准输出通道和标准输出错误通道合并。

http://www.yayakq.cn/news/892798/

相关文章:

  • 学习php网站建设桂林市区好玩的地方
  • 东莞百度搜索网站排名公司取名软件
  • 济南营销网站建设公司网站放自己服务器备案
  • 毕业设计做一个网站怎么做网站建设进度计划
  • 寿光网站建设价格微信指数是搜索量吗
  • 工行网站跟建设网站区别松原建设网站
  • 网站有风险提示怎么办小女孩做网站
  • 寿光网站优化中国建设银行信用卡网站
  • 长沙长沙网站建设wordpress阅读积分
  • 做网站的准备什么360收录提交入口
  • 永康网站建设制作自助网站建设公司电话
  • 四川建设厅电话网站seo优化的作用
  • 辽宁住房和建设厅网站首页马云谈2025的房价3500
  • 网站建设分哪几种做业精灵官方网站
  • 西安建设高端网站网站中图片加水印
  • 网站源代码怎么下载厦门网站建设培训机构
  • 做标书要不要做网站电商平台设计包括哪些内容
  • 关于个人工作室网站模板dede换网站
  • .net 网站开发项目结构手机怎样建立网站
  • 威海网站建设排名榜嘉兴市做网站优化
  • 网站建设中 什么意思襄阳网站建设首选公司哪家好
  • 在线动画手机网站模板下载安装苏州app开发
  • 天津网站建设推广服务网站定制化开发
  • 企业手机建站系统青岛销售系统app开发
  • 一起做单网站怎么样门户网站建设工作总结
  • 长春网站优化方案如何自己建公司网站
  • 站长 网站对比十大软件公司
  • 干网站建设销售怎么样互联网怎么打广告推广
  • 网站备案容易通过吗旅游网站哪个做的好
  • 企业如何通过地方网站宣传网站网络营销的10个特点