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

What's the difference between new QLabel or non-new QLabel?

本文关键字:QLabel 区别 什么      更新时间:2023-10-16
#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)有什么不同?

谢谢。

使用new,对象将在堆上而不是堆栈上创建。我想差不多就是这样了。

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