main()代码中的QT应用程序app.exec()在主窗口关闭之前不会到达

main()代码中的QT应用程序app.exec()在主窗口关闭之前不会到达,qt,static,qt4,main,qmainwindow,Qt,Static,Qt4,Main,Qmainwindow,我已经使用QT Creator 2.4.0创建了一个QT应用程序。 并创建了包含main()函数的main.cpp文件,如下所示: intmain(intargc,char*argv[]) { QApplication应用程序(argc、argv); Q_INIT_资源(主资源); 主窗口主窗口; mainWindow.show(); cout标准输出很可能是缓冲的,因此“1”实际上可能是打印的,但没有刷新。您必须刷新标准输出以使其在正确的时间出现。或者您可以改为打印到cerr,这很可能是无缓冲

我已经使用QT Creator 2.4.0创建了一个QT应用程序。 并创建了包含main()函数的main.cpp文件,如下所示:

intmain(intargc,char*argv[])
{
QApplication应用程序(argc、argv);
Q_INIT_资源(主资源);
主窗口主窗口;
mainWindow.show();

cout标准输出很可能是缓冲的,因此“1”实际上可能是打印的,但没有刷新。您必须刷新标准输出以使其在正确的时间出现。或者您可以改为打印到cerr,这很可能是无缓冲的。

您表示程序在第一种情况下运行正常(来自QtCreator?)但是没有您期望的控制台输出,在第二种情况下,直接从控制台运行,程序退出而不显示窗口?我想说您正在运行两个不同的可执行文件。

app.exec()
是一个阻塞函数(它启动Qt事件循环)直到应用程序的最后一个窗口关闭后才会返回


由于缓冲问题,您可能确实看不到“1”这解释了问题#1在更改后可以正常工作:如果我从控制台运行,我确实可以看到主窗口,并且可以像往常一样使用应用程序,但是命令提示符会返回,而不是等待我关闭主窗口!好像我已经完成了程序,我想我遗漏了一些东西。这肯定是不寻常的。有些因为这是基本Qt应用程序的典型main(),所以我觉得奇怪的是,当从命令行运行时,它会返回,虽然它被app.exec()阻止,但实际上是这样,但命令提示符以某种方式决定应用程序已完成。。。