簡體   English   中英

如何在qt4(信號/插槽)中監視QProcess finished()

[英]How can I monitor QProcess finished() in qt4 (Signal/Slot)

看起來他們似乎是在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 )

替換你的代碼行

connect(r, SIGNAL(finished(int exitcode)), this, SLOT(updateExit()));

connect(r, SIGNAL(finished(int)), this, SLOT(updateExit()));

當連接信號和插槽不提供參數名稱時。

我覺得我在這里想念什么,但我有幾分鍾的時間... :)

4.x中完成的信號出了什么問題? 據我所知,它只是為您的內容添加了一些參數。

4.5:

void QProcess::finished( int exitCode, QProcess::ExitStatus exitStatus )

4.0:

void QProcess::finished( int exitCode )

更改插槽以具有正確的參數,如果不需要它們,則將其忽略。

至於需要狀態更新,在一個單獨的線程中啟動新的QProcess並讓該線程進行等待。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM