我希望程序來檢查腳本已經開始,如果沒有 - 然後啓動它(在終端和根)如何從QT程序中啓動終端中的bash腳本?
謝謝! ;-)
QProcess *proc = new QProcess();
proc->setWorkingDirectory("/home/user/Documents/");
proc->start("/home/user/Documents/script.sh");
delete proc;
我希望程序來檢查腳本已經開始,如果沒有 - 然後啓動它(在終端和根)如何從QT程序中啓動終端中的bash腳本?
謝謝! ;-)
QProcess *proc = new QProcess();
proc->setWorkingDirectory("/home/user/Documents/");
proc->start("/home/user/Documents/script.sh");
delete proc;
QProcess中做
proc->start(...);
delete proc;
你殺了它儘快asyncronously運行外部腳本,所以它開始(或者甚至之前)。嘗試在刪除之前添加waitForFinished()。
proc->start(...);
proc->waitForFinished();
delete proc;
謝謝!但如何檢查腳本是否已在運行? – user3027198
是否需要'刪除proc',即使我的** exit **命令在我的腳本結尾? – user3027198
只有你的程序會啓動腳本嗎?如果是這樣,那麼QProcess的state()函數會告訴你它是否正在運行。是的,一旦完成,您將需要刪除QProcess。當腳本結束時,QProcess仍將包含它使用的輸入和輸出流以及它保存的任何其他狀態,直到它被刪除。這是一件好事,否則一旦劇本結束,你無法訪問它輸出的任何數據。 – David
歡迎來到SO,請展示您的編碼工作,SO不是代碼編寫服務。 – Cyrus