• 7060阅读
  • 2回复

【提问】对qt tutorial里的程序有点不明白,请教 [复制链接]

上一主题 下一主题
离线avacool
 
只看楼主 倒序阅读 楼主  发表于: 2005-10-21
在Qt的例子里面,往往看到new,却没见过delete,很奇怪
比如下面这个例子
  /****************************************************************
  **
  ** Qt tutorial 4
  **
  ****************************************************************/

  #include <QApplication>
  #include <QFont>
  #include <QPushButton>

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

  MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
  {
    setFixedSize(200, 120);

    QPushButton *quit = new QPushButton("Quit", this); //*****
    quit->setGeometry(62, 40, 75, 30);
    quit->setFont(QFont("Times", 18, QFont::Bold));

    connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
  }

  int main(int argc, char *argv[])
  {
    QApplication app(argc, argv);
    MyWidget widget;
    widget.show();
    return app.exec();
  }

*****处new了一个pushbutton,却没有看到哪个地方delete它
奇怪
官方教程哦
难道没有内存泄漏吗?
请指教
离线avacool
只看该作者 1楼 发表于: 2005-10-21
不好意思 晓得鸟
new QPushButton("Quit", this);
                            ~~~~
                          重点在这个this
离线tdns

只看该作者 2楼 发表于: 2005-10-21
是这样的,只要是在Widget的树结构中,最后程序退出的时候所有widget都会被递归清除的。
快速回复
限100 字节
 
上一个 下一个