// main.cpp
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    myWidget w;
    w.show();
    return a.exec();
}
// mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class myWidget : public QWidget
{
    Q_OBJECT
public:
    myWidget(QWidget *parent = 0);
    ~myWidget();
};
#endif // MYWIDGET_H
// mywidget.cpp
#include "mywidget.h"
#include <QPushButton>
#include "mypushbutton.h"
myWidget::myWidget(QWidget *parent)
    : QWidget(parent)
{
    QPushButton *button1 = new QPushButton();
    button1->setParent(this);
    button1->setText("xuyushan");
    QPushButton *button2 = new QPushButton("caotingting", this);
    button2->move(100, 0); // 设置 button2 的位置
//    resize(600, 400); // 重设置界面大小
    setFixedSize(600, 400); // 设置固定尺寸大小
    setWindowTitle("tangqizhe"); // 设置窗口标题
    myPushButton * myButton1 = new myPushButton(this); // 继承自QObject的类, 只要设置了parent, 就不需要管析构了
    myButton1->setText("tangqizhe");
    myButton1->move(200, 0);
    /*
     * myButton1: 信号的发送者
     * myPushButton::clicked: 发送的信号(函数地址)
     * this: 信号的接收者
     * myWidget::close: 处理的槽函数(函数地址)
     */
    connect(myButton1, &myPushButton::clicked, this, &myWidget::close);
}
myWidget::~myWidget()
{
}