主函数 main.cpp
#include <QApplication>
#include "mywidget.h"
#include <QPushButton>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
MyWidget w, w1; //自定义构造后创建窗口
w.show();
w1.show();
w1.setWindowTitle("w1");
return app.exec();
}
头文件 mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
signals:
public slots:
};
#endif // MYWIDGET_H
mywidget.cpp
#include "mywidget.h"
#include <QPushButton>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
//这是构造函数的初始化列表方式,这也是派生类构造函数必须采用的形式
MyWidget是Qwidget的子类,QWidget(parent)是调用了QWidget的构造函数, 派生类显示调用父类的构造函数,并传参,调用顺序是先调用父类构造函数,再调用派生类的构造函数 若不写调用父类的默认构造函数
{
QPushButton *b = new QPushButton("关闭");
QPushButton *b2= new QPushButton("^_^");
// 将 w 设为 b 的父对象
b->setParent(this);
b2->setParent(this);
b->move(100, 100);
b2->setGeometry(200,200,100, 50);
connect(b, SIGNAL(clicked()), this, SLOT(close()));
}