簡體   English   中英

為什么執行QProcess后QProgressDialog沒有更新?

[英]Why is a QProgressDialog doesn't get updated after executing a QProcess?

我正在使用QProgressDialog來顯示長時間運行的操作的狀態,其中包括運行外部可執行文件的步驟。 我使用QProcess :: execute()方法運行外部可執行文件。 QprogressDialog可以很好地更新標簽文本,直到到達QProcess :: execute()方法,此后才不更新狀態。

運行可執行文件后如何更新狀態。

QProcess::execute()是一種阻塞方法:它將阻塞其調用線程,直到生成的進程終止為止。 如果您從主線程調用此方法,則在該方法返回之前不會處理UI事件。

為了解決這個問題,您可以創建一個QProcess實例(而不是使用其靜態方法),然后創建一個插槽,該插槽繼續外部進程完成運行之后發生的部分操作,並將其連接到QProcess::finished(int, QProcess::ExitStatus)信號。

暫無
暫無

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

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