关于qt的主程序调用exec()

才开始学习qt ,对qt中的许多东西还不是很习惯,今天就看到一个程序为什么后main中要调用exec()呢?而不是一般程序写的return 0或者1。

在仔细阅读了好试验过后有一点儿体会,希望能分享。

return 0或者return 1或者exit()  or   quit()其实都是main函数执行完毕之后调用exit()强制关闭所创建的窗口,然后再退出程序。

而exec()来不及也不会去关闭那些已经打开的函数,当程序执行到代码末端的时候没有时间去关闭这些applicaion。

这个也是暂时的体会,希望有大牛能带路,深入理解。

QT4中,您可以使用QProcess类来在主程序调用外部exe程序。以下是一个简单的例子: ```cpp #include <QCoreApplication> #include <QProcess> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QProcess process; QString program = "external_program.exe"; QStringList arguments; arguments << "-arg1" << "-arg2"; process.start(program, arguments); if (process.waitForStarted()) { process.waitForFinished(); QString output(process.readAllStandardOutput()); QString errors(process.readAllStandardError()); qDebug() << "Output: " << output; qDebug() << "Errors: " << errors; } else { qDebug() << "Failed to start external program"; } return a.exec(); } ``` 在上面的例子中,我们创建了一个QProcess对象,然后使用start()函数启动了一个名为"external_program.exe"的外部程序,并传递了两个命令行参数"-arg1"和"-arg2"。接下来,我们使用waitForStarted()函数等待外部程序启动,然后使用waitForFinished()函数等待外部程序执行完毕。当外部程序执行完毕后,我们可以使用readAllStandardOutput()函数和readAllStandardError()函数来读取其输出和错误信息。 注意,如果您需要在主程序调用外部程序并等待其执行完毕,可以使用waitForFinished()函数。但是,这会将主程序阻塞,直到外部程序执行完毕。如果您不希望阻塞主程序,可以使用readyReadStandardOutput()和readyReadStandardError()信号来异步读取外部程序的输出和错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值