【问题标题】:Reusing a QProcess object (Qt 4.8)重用 QProcess 对象 (Qt 4.8)
【发布时间】:2015-08-01 09:18:52
【问题描述】:

给定以下代码:

QProcess myProcess;

myProcess.setProcessChannelMode(QProcess::ForwardedChannels);

myProcess.start(/* whatever */);
myProcess.closeWriteChannel();

// More code, like waitForStarted() and other specifics.

myProcess.start(/* whatever */); // Line (1)

第(1)行之后,新进程的标准输入通道是打开还是关闭?我的意思是,QProcess 是否会记住您对每个新抛出的进程的选择,还是每次都必须设置它们?在这种情况下,哪些 QProcess 属性会重置,哪些不会?

【问题讨论】:

  • 启动是异步的,如果要确保启动完成(或失败),调用waitForStarted()。我会考虑为每个进程运行创建一个新的 QProcess 对象。
  • 也许我应该在问题中提到这一点,但是在“//更多代码”注释下的代码中省略了您的考虑。
  • 好的,我已经提到过了。你是第二个警告我的人。

标签: c++ qt qprocess


【解决方案1】:
myProcess.start(/* whatever */); // Line (1)

您应该在第 (1) 行收到“QProcess::start: Process is already running”警告..​​....

【讨论】:

  • 假设在“//更多代码”中有一个waitForFinished()调用。
  • @Peregring-lk :据我所知,每次都必须设置 QProcess...即使您可以交叉检查qDebug()<<myProcess.isOpen(); 以确保...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
相关资源
最近更新 更多