qt来自书中的例子

wan*_*UDY 2 c++ qt qt-creator

我有这段代码:

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

 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));

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

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

有人可以解释这一行究竟发生了什么

MyWidget(QWidget *parent = 0);
Run Code Online (Sandbox Code Playgroud)

有点难以理解这位父母是什么,提前谢谢

Eva*_*ran 8

这是带有默认参数的构造函数的参数(NULL因为根据c ++标准NULL定义0).默认意味着传递无参数与传递相同NULL.

由于Qt的小部件被安排在一个层级系统(父级 - >子级关系)中,因此父级是小部件,它是当前小部件的"所有者"或"容器"(NULL意味着没有父节点也是各种根节点小部件).对于GUI项,窗口小部件通常将其包含的窗口小部件作为其父窗口.

这是有利的,因为当删除父项时,它将删除任何子项已经自动删除了对c ++附带的大量内存管理的需要.