一、添加一个按钮
1、包含按钮的头文件:#include<QPushButton>
2、创建按钮的对象:QPushButtonbutton;
3、设置按钮显示内容:
可以有两种方式设置:
1、 创建对象的时候直接设置:QPushButtonbutton("Button");
2、 通过内部成员函数设置:
4、设置对象的父子关系,将当前窗口对象设置为该button的父对象:
button.setParent(&w);
注意;
1、父子关系说的是什么对象的父子关系,不是类的父子关系
2、窗口的show()的前后顺序不同,显示会不一样。
二、父子对象关系
父子关系影响显示位置
没有父对象的窗口,叫主窗口。
2.6按钮的事件响应:信号与槽机制(Signal&Slot)
QT提供信号与槽的机制,来让任意两个对象之间进行消息处理。作用就是让一个对象产生的信号能够被另一个对象接受并处理。
QT基本所有的对象都继承QObject对象,在这个对象中有一个静态函数connect(..),这个函数可以让一个对象产生的信号能够被另一个对象接受并处理。
QObject::connect(&button,SIGNAL(clicked()),&w,SLOT(close()));
第一个参数:要发送消息的对象(一定要是QObject子类对象),这里为按钮对象button
第二个参数:要发送的信号,用SIGNAL宏将其转化为char*类型,这里为button的点击事件
第三个参数:接收信号的对象(也是QObject子类对象),这里是窗口对象w
第四个参数:接收信号的处理方式,用SLOT将其转化为char*类型,这里为窗口对象的槽函数close
前两个参数称为信号,后两个参数称为槽。经过这样的连接之后,按钮button的clicked函数和窗口w的close函数就进行了绑定,调用button的clicked函数就相当于调用了窗口对象w的close函数。 这种方式的好处是将两个独立的模块,可以通过第三方连接起来,降低了设计的耦合性。