inherited from 继承自xx
inherited by 被xx继承
通过帮助文档查看按键的功能信号Signals
鼠标放在类名上面,然后按F1查看帮助文档,显示一半。再按下F1,显示另一半。比如这里的查看 QPushButton
看看Contents部分有没有Signal,
如果没有,说明它的信号有可能是继承过来的。因此,我们要找到它的父类。
我们要点击一下它的父类(基类),
再点进去
点击进去后就是对这些信号的说明,这里查看下 void pressed()
同时需要注意:信号是没有返回值的。
查看槽函数
现在,我们再把鼠标放到close上面,然后按F1查看帮助文档,显示一半。再按下F1,显示另一半。
可以看到[slot],说明close是槽函数。
实验效果:建立一个按键,当按下按键后,窗口关闭。
执行流程如下
先看主函数main.cpp:
#include "mainwidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;//执行MainWidget的构造函数
w.show();
return a.exec();
}
当程序执行到MainWidget w的时候会进入到MainWidget的构造函数中,构造函数在mainwidget.cpp中,
#include "mainwidget.h"
#include <QPushButton>
//鼠标放在类名上面,然后按F1查看帮助文档,显示一半。再按下F1,显示另一半。
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent)
{
b1.setParent(this);
b1.setText("close");
b1.move(100,100);
b2 = new QPushButton(this);//通过构造函数指定父对象
b2->setText("Button2");
b2->move(200,200);
connect(&b1,&QPushButton::pressed,this,&MainWidget::close);
/* &b1:信号发出的地址,指针类型
* &QPushButton::pressed:需要处理的信号,
* 格式为: &发送者的类名::信号名字
* 也可以使用&QAbstractButton::pressed(因为这个信号本身就是从它的父类那继承过来的)
* this:信号的接收者,这里的信号的接收者是窗口,而窗口的指针就是this
* &MainWidget::close:槽函数,信号处理函数。
* 格式为: &接收者的类名::槽函数的名字
* 也可以使用&QWidget::close(因为这个槽函数本身就是从它的父类那继承过来的)
*/
}
MainWidget::~MainWidget()
{
}
其中,b1是在头文件mainwidget.h中定义的。
private:
QPushButton b1;
QPushButton *b2;
};