Qt第一天:信号和槽

基本定义 

        所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。

标准信号和槽 

首先向导创建一个工程

Qt第一天:信号和槽_第1张图片

 在构造函数里实现

Qt第一天:信号和槽_第2张图片

实现信号和槽

connect(&b1, &QPushButton::pressed, this, &MainWidget::close);
    /* &b1: 信号发出者,指针类型
     * &QPushButton::pressed:处理的信号,  &发送者的类名::信号名字
     * this: 信号接收者
     * &MainWidget::close: 槽函数,信号处理函数  &接收的类名::槽函数名字
     */

Qt第一天:信号和槽_第3张图片

 自定义槽

 /* 自定义槽,普通函数的用法
  * Qt5:任意的成员函数,普通全局函数,静态函数
  * 槽函数需要和信号一致(参数,返回值)
  * 由于信号都是没有返回值,所以,槽函数一定没有返回值
 */
    connect(b2, &QPushButton::released, this, &MainWidget::mySlot);
    connect(b2, &QPushButton::released, &b1, &QPushButton::hide);
/* 自定义的槽 在头文件mainwidget.h中 声明 */
void MainWidget::mySlot()
{
    b2->setText("123");
}

Qt第一天:信号和槽_第4张图片

自定义信号,实现两个独立的窗口转换

新建子窗口 

Qt第一天:信号和槽_第5张图片

自定义信号与槽函数并实现

Qt第一天:信号和槽_第6张图片

Qt第一天:信号和槽_第7张图片

你可能感兴趣的:(Qt入门进阶学习笔记,qt,开发语言)