Qt啟用外部程式和關閉外部程式
阿新 • • 發佈:2019-02-01
在我們的多方合做的專案中,經常會遇到需要呼叫第三方外部程式。在Qt中提供了QProcess類,可以用來啟動和關閉外部程式,並與之通訊。QProcess繼承於QIODevice,因此,我們可以把它當作是一個I/O裝置進行讀寫操作。
具體用法:
1.一體式啟動:外部程式啟動後,將隨著主程式的退出而退出
啟動方法:
void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)
2.分離式啟動:外部程式先啟動,啟動後再啟動外部程式,主程式退出時,該程式繼續執行。
啟動方法:
void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0)
3.實際呼叫:
process->start("D:/mypro/data/Rose.exe");
QProcess::start()和QProcess::execute()都能完成啟動外部程式的任務,但是區別很大,start()是非阻塞的,而execute()是阻塞的。execute()=start()+waitforFinished()。