Qt -- 标准信号与槽

在这里插入图片描述
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;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuechanba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值