QT+信号和槽函数_自定义槽函数_一个信号对应多个槽函数

以下的代码里面有自定义槽函数的内容,同时也有信号实现的函数;

#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>

#include <QPushButton>


class MainWidget : public QWidget
{
    Q_OBJECT

public:
    MainWidget(QWidget *parent = 0);
    ~MainWidget();
    void mySlot();//自定义的槽函数

private:
    QPushButton btn1;
    QPushButton *btn2;
};

#endif // MAINWIDGET_H

 

#include "mainwidget.h"

#include <QPushButton>
MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent)
{

//    QPushButton btn1;
//    QPushButton btn2;

    btn1.setParent(this);
    btn1.setText("colse");
    btn1.move(100,100);


    btn2 = new QPushButton(this);//指针没有空间,是需要动态的对其进行空间的分配
    btn2 ->setParent(this);
    btn2 ->setText(" 3 2 1 ");

    connect(&btn1,&QPushButton::pressed,this ,&MainWidget::close);

    /* 对connect的说明:
     * &btn1 :信号发出着,指针类型
     * &QPushButton::pressed:处理信号,  &发送者的类名::信号名字
     * this:信号接收者
     * &MainWidget::close:   槽函数,信号处理函数 &接收者的类名::槽函数名字
    */


    /*自定义槽,说的更加通俗一点,就是普通函数的用法
     * QT5:可以是 任意的成员函数(常用这种方法,直接写成该类的成员函数),普通全局函数,静态函数  都可以是槽函数
     * 槽函数需要和信号一致(参数,返回值)
     * 由于信号都是没有返回值,所以,槽函数一定没有返回值
    */
    //释放按钮btn2实现里面的文本内容发生改变
    connect(btn2,&QPushButton::released,this,&MainWidget::mySlot);//在写自定义信号槽函数的时候,一定要看发送信号函数的类型,这里released信号的函数是:void QAbstractButton::released()
                                                //即released函数没有参数,也没有返回值,槽函数需要和信号一致,也没有参数和返回值

    //释放按钮btn2隐藏按钮btn1
    connect(btn2,&QPushButton::released,&btn1,&QPushButton::hide);

}

//自定义槽函数的实现
void MainWidget::mySlot()
{
    btn2->setText("I LOVE YOU");
}
MainWidget::~MainWidget()
{

}

 信号和槽:QT对象之间通信的接口

转载于:https://www.cnblogs.com/doker/p/11023683.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值