在QT程序中,你每添加一个控件,就必须在其开头声明相应控件的头文件。如按钮是QT中最常用的控件之一,按钮控件以英文PushButton定义,但QT的头文件声明中有一个特点,就是要在头文件前面加一个大写字母Q,其中每个单词的连接第一个字母都是大写。
#include
QPushButton * btn1 = new QPushButton;
btn1->setParent(this);
`btn1->setText("第一个按键"); //显示文本`
btn1->move(200,200); //移动btn1按钮
btn2->resize(100,50); //重新制定btn2大小
btn1->show();
这里实现的功能为:点击设置的按钮,实现关闭窗口
所以需要将窗口和按钮连接起来,可知连接的英文单词叫做connect
具体使用为connect(参数1,参数2,参数3,参数4);
参数一:信号发送者
参数二:发送的信号(函数的地址)
参数三:信号的接受者
参数四:处理的槽函数
可以知道 在这里:
参数一为按钮,即btn1;
参数二为点击按钮的函数,用&QPushButton::clicked表示;
参数三为窗口,接收信号的,为this指针;
参数四为关闭窗口的函数,俗称为槽函数,关闭的函数为&Widget::close。
所以
//功能: 点击“第一个按键” 实现关闭窗口
connect(btn1,&QPushButton::clicked,this,&Widget::close);
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include
class Widget : public QWidget
{
Q_OBJECT //信号槽
public:
Widget(QWidget *parent = 0);
~Widget();
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include
Widget::Widget(QWidget *parent) :
QWidget(parent)
{
//创建一个按键
QPushButton *btn1=new QPushButton;
btn1->show();
btn1->setParent(this); //让btn1对象依赖在Widget窗口中
btn1->setText("第一个按键"); //显示文本
btn1->move(200,200); //移动btn1按钮
//功能: 点击“第一个按键” 实现关闭窗口
//参数一:信号发送者 参数二:发送的信号(函数的地址) 参数三:信号的接受者 参数四:处理的槽函数
connect(btn1,&QPushButton::clicked,this,&Widget::close);
}
Widget::~Widget()
{
}
main.cpp
#include "widget.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //a应用程序对象,在QT中,应用程序对象有且仅有一个
Widget w; //窗口对象,Widget父类 ->QWidget
w.show(); //窗口对象 默认不会显示 必须要调用show方法显示窗口
return a.exec(); //让应用程序对象进入消息循环
}