如何在Main()之外创建和显示MainWindow?

时间:2017-01-11 21:05:50

标签: c++ qt qt-creator

我已经在网上进行了长时间的研究,但却找不到任何明确的信息。 我认为答案很明显,但我在Qt开始了。 为什么这段代码不起作用?我的窗口弹出真快速。

Main.cpp的

#include <QApplication>
#include "test.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Test test;

return a.exec();
}

Test.cpp的

#include "test.h"

Test::Test()
{
 MainWindow w;
 w.show();
}   

这一项工作(窗口保持打开状态):

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

谢谢!

1 个答案:

答案 0 :(得分:2)

窗口关闭,因为它是Test构造函数的局部变量,当构造函数退出时,它的析构函数被调用,从而关闭它。您需要使window对象成为Test类的成员变量。