2010-07-15 54 views
5

在我的Qt GUI應用程序,我打電話命令提示過:從Qt應用程序調用命令提示符而不凍結?

system("lots.exe & of.exe && commands.exe"); 

它打開了命令提示符(就像我希望它),但凍結Qt的GUI應用程序,直到我關閉命令提示符。有沒有辦法防止這種情況發生?我看到有一個QProcess類,但無法啓動命令提示符。

任何幫助將不勝感激!

+0

「&&」是否有效?我希望它不起作用,因爲這應該是shell的語法(cmd.exe,bash等),而QProcess不會處理它。編輯:愚蠢的我,這仍然是系統()... – 2010-07-16 07:02:36

回答

7

QProcess確實是答案。如果您想使用類似system()的東西,您必須將呼叫置於另一個線程中,或使用popen或類似於您的平臺的東西。

QProcess確實有setReadChannel,您可以使用它來顯示自己的控制檯窗口以顯示輸出。

1

您只需要將該系統調用放在單獨的線程中。

+2

當QProcess可用時無需這樣做。在system()中被阻塞的時候,也不會有中斷線程的好方法,如果底層的.exe不會退出很長時間(或者永遠不會退出) – 2010-07-15 21:47:59

+0

這是系統的一般問題( ), 我同意 :) – 2010-07-16 07:03:19

相關問題