1
我可以通過從我的QT代碼執行此操作來打開終端:QT可以打開一個Linux終端,然後寫入它嗎?
QProcess過程;
process.start(「xterm」); process.waitForFinished(-1);
但後來我想不出如何寫命令給它?
我需要這樣做,因爲我希望我的應用程序能夠SSH設備,然後在登錄後編寫命令並查看輸出。
我也接受其他解決方案!
感謝
我可以通過從我的QT代碼執行此操作來打開終端:QT可以打開一個Linux終端,然後寫入它嗎?
QProcess過程;
process.start(「xterm」); process.waitForFinished(-1);
但後來我想不出如何寫命令給它?
我需要這樣做,因爲我希望我的應用程序能夠SSH設備,然後在登錄後編寫命令並查看輸出。
我也接受其他解決方案!
感謝
QProcess中有一個寫命令,但你不希望被調用waitForFinished。
QProcess proc;
proc.start("xterm");
proc.waitForStarted();
proc.write(someData, dataSize);
如果想從終端響應,時隙連接到readyRead()信號
// Qt 5 syntax
connect(proc &QProcess::readyRead, this, &MyClass::readData());
然後調用的從READDATA槽函數的讀取功能,如readAll()之一。
對不起,對於遲到的答案。 我試了你的建議,但我得到這個錯誤運行你的代碼: QProcess:當進程仍在運行時銷燬。 – user2992866
您需要動態分配進程(QProcess * proc = new QProcess),並在適當的時候刪除它,也許通過鏈接到finished()信號並調用deleteLater()。我按照你的問題中的示例代碼將它分配到堆棧上。 – TheDarkKnight
感謝它修復了這個錯誤。但是,例如proc-> write(「pwd」)不會寫入終端。 – user2992866