• 6700阅读
  • 6回复

QT里面怎么只有New,没有Delete? [复制链接]

上一主题 下一主题
离线radium_sql
 

只看楼主 倒序阅读 楼主  发表于: 2008-08-14
— 本帖被 XChinux 执行加亮操作(2008-08-14) —
我在看QT里面带的一些例子,现在正在看教程那一块。。我发现在这里面所有用到的QT的界面元素,基本上只有new出来,而没有delete掉。。。难道QT可以实现自己的内存管理吗?或者是智能指针,有谁可以告诉我为什么?

class MyWidget : public QWidget
{
public:
    MyWidget(QWidget * parent = 0);

};

MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
    setFixedSize(200, 120);
    QPushButton * quit = new QPushButton(tr("Quit"), this);
    quit->setGeometry(62,40,75, 30);

    quit->setFont(QFont("Times", 18, QFont::Bold));

    quit->setGeometry(10, 40, 180, 40);
    connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}

例如,上面的只有new出了QPushButton,而连个析构函数都没有。这怎 么行啊?》
QT什么时候替代MFC?
离线xuyantao
只看该作者 1楼 发表于: 2008-08-14
Qt的一个优点, 父类结束时会自动delete子类,用户手动delete也可以,Qt会把这个事件通知给父类。
离线radium_sql

只看该作者 2楼 发表于: 2008-08-14
引用第1楼xuyantao于2008-08-14 15:19发表的  :
Qt的一个优点, 父类结束时会自动delete子类,用户手动delete也可以,Qt会把这个事件通知给父类。


谢谢。
QT什么时候替代MFC?
离线mumutouv

只看该作者 3楼 发表于: 2008-08-15
Qt的一个优点, 父类结束时会自动delete子类,用户手动delete也可以,Qt会把这个事件通知给父类。
应该改成
Qt的一个优点, 父窗口结束时会自动delete子窗口,用户手动delete也可以,Qt会把这个事件通知给父窗口。
离线mumutouv

只看该作者 4楼 发表于: 2008-08-15
补充一点,只是针对窗口而言,其他的并不会自动delete,如果创建一个parent window=null的窗体,也不会自动销毁
离线xuyantao
只看该作者 5楼 发表于: 2008-08-15
Thanks!表述错误,呵呵
引用第3楼mumutouv于2008-08-15 08:38发表的  :
Qt的一个优点, 父类结束时会自动delete子类,用户手动delete也可以,Qt会把这个事件通知给父类。
应该改成
Qt的一个优点, 父窗口结束时会自动delete子窗口,用户手动delete也可以,Qt会把这个事件通知给父窗口。
离线hehui

只看该作者 6楼 发表于: 2008-09-04
Delete是C++的,Qt怎么会没有呢?
很多工作它自动帮你做了!
快速回复
限100 字节
 
上一个 下一个