一、创建一个基于 QWidget 的项目,不带有界面设计器:

二、在主窗口下添加两个按钮对象,连接按钮发出的信号和槽函数:
mywidget.h:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
// 引入按钮头文件
#include <QPushButton>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
private:
// 声明两个按钮对象
QPushButton b1; // 普通对象
QPushButton *b2; // 指针对象
};
#endif // MYWIDGET_H
mywidget.cpp:
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
// 通过 setParent 方法指定父对象
b1.setParent(this);
b1.setText("Button1");
b1.resize(80, 40);
b1.move(200, 100);
// 通过构造函数方法指定父对象
b2 = new QPushButton(this);
b2->setText("Button2");
b2->resize(80, 40);
b2->move(30, 20);
/*
* 连接信号和槽:点击按钮的时候,关闭当前窗口
* 参数1:信号的发送者(指针类型)
* 参数2:发送的信号;&发送者的名字::信号名称
* 参数3:信号的接收者(指针类型)
* 参数4:处理信号的函数(叫做槽函数);&接收者的名字::槽函数名称
*/
connect(&b1, &QPushButton::clicked, this, &MyWidget::close);
// 连接信号和槽:按下按钮的时候,当前窗口最大化显示
connect(b2, &QPushButton::pressed, this, &MyWidget::showMaximized);
// 重置主窗口的大小
this->resize(600, 400);
}
MyWidget::~MyWidget()
{
}
其中信号 &QPushButton::clicked、&QPushButton::pressed,
和槽函数 &MyWidget::close、&MyWidget::showMaximized 都是 Qt 定义好的;
可以在 Qt 帮助文档里查找:</