看起来他们在qt3中是一个解决方案,但是我找不到qt4的一个(我用过的所有东西,我看到了qt3的解决方案)。
connect(r, SIGNAL(readyReadStandardError()), this, SLOT(updateError()));
connect(r, SIGNAL(readyReadStandardOutput()), this, SLOT(updateText()));
connect(r, SIGNAL(finished(int exitcode)), this, SLOT(updateExit()));
我的stdout / stderr SIGNAL / SLOT工作得很好,但我似乎找不到一个好的解决方案。我不能在循环中执行任何操作或proc-> waitforfinished因为我需要不断更新到我的UI。我怎么能这样做?
我的错误:Object :: connect:没有这样的信号QProcess :: finished(int exitcode)
由于
以下是QProcess的SIGNALS ....
Signals
void error ( QProcess::ProcessError error )
void finished ( int exitCode, QProcess::ExitStatus exitStatus )
void readyReadStandardError ()
void readyReadStandardOutput ()
void started ()
void stateChanged ( QProcess::ProcessState newState )
答案 0 :(得分:2)
替换您的代码行
connect(r, SIGNAL(finished(int exitcode)), this, SLOT(updateExit()));
与
connect(r, SIGNAL(finished(int)), this, SLOT(updateExit()));
当连接信号和插槽没有给出参数名称时。
答案 1 :(得分:0)
我觉得我在这里遗漏了一些东西,但我有几分钟......:)
4.x中完成的信号出了什么问题?它只是根据我所知道的内容添加了一些参数。
4.5:
void QProcess::finished( int exitCode, QProcess::ExitStatus exitStatus )
4.0:
void QProcess::finished( int exitCode )
更改您的广告位以获得正确的参数,如果您不需要,请忽略它们。
至于需要状态更新,在一个单独的线程中启动新的QProcess并让该线程进行等待。