PyQt5.QtCore.Qprocess调用外部程序

PyQt5.QtCore.Qprocess的使用调用外部程序全部代码:

注意:
1:” * “标注的地址是需要注意的点
2:不能使用绝对路径来运行程序,这一点也比较纳闷。(也可能是方式没有使用对)
3: QProcess()有三种启动方式:

  • self.process.start(cmd, [])
    特点:非阻塞、一体式
    这样的启动方式之启动外部程序启动后,它会随着主程序的退出而退出。
  • self.process.startDetached(cmd, [])
    特点:分离式
    外部程序启动后,当主程序退出时并不退出,而是继续运行
  • self.process.start(cmd, [])
    特点:阻塞

4:QProcess()方法:

  • self.process.kill() // 停止
  • self.process.readAllStandardOutput() // 从标准输出通道中读取数据
  • self.process.readAllStandardErrot() // 从标准错误通道中读取数据
  • self.process.setStandardOutputFile() // 设置输出到的文件,相当于前面的重定向
  • -self.process.setStandardErrorFile() // 设置错误到的文件
  • read(); readLine() // 读取标准输出

5:下面提供了 setProcessChannelMode() 的设置模式,供参考
官方链接参考文档:

番外篇:
项目需要,使用的是PyQt框架写界面调用外部的程序,并且读取外部程序输出内容到GUI界面。
之前是使用 python的subprocess.Popen()来调用外部程序。源代码启动,启用没有什么问题。pyinstaller打包之后,发现外部程序的黑DOS窗口不会去除。后来找到了PyQt5.QtCore.Qprocess这种方式重写

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月16日
下一篇 2021年1月16日

相关推荐