新QLabel或非新QLabel有什么区别?

时间:2012-01-02 15:57:58

标签: c++ qt

#include <QApplication>
#include <QLabel>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QLabel label("haha"); 
    label.show();
    return app.exec();
}

考虑到上面的代码,如果我更改为QLabel* label = new QLabel("haha")QApplication* app = new QApplication(argc, argv),有什么区别?

感谢。

1 个答案:

答案 0 :(得分:1)

使用new将在堆而不是堆栈上创建对象。我猜这就是它。

如果您确实将标签设置为另一个窗口小部件的子窗口并在堆栈上创建了父窗口小部件,并在堆上创建了子窗口(在本例中为标签),那么当子窗口被销毁时您可能会遇到问题,但是我从来没有尝试过能够确认它。