吃饭睡觉学QT(2) - 信号和槽(1)

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    b1.setParent(this);
    b1.setText("shuaiTT");
    b1.move(100,100);

    b2 = new QPushButton(this);
    b2->setText("pangRR");
    b2->move(200,100);

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


    /* 自定义槽   普通函数的用法*/
    //QT:任意的成员函数,普通全局函数,静态函数
    //   槽函数需要和信号一致
    //   由于信号没有返回值 所以槽函数也没有返回值

    connect(b2,&QPushButton::pressed,this,&Widget::my_slot);
    
    
}

void Widget::my_slot()
{
    b2->setText("pangRR beauty...");


}


信号和槽是QT里面比较重要的部分

首先一个小的注意点,就是我们每次不可能都在主函数里写界面的编程,在上一篇里面也提到了另一种方式就是构造函数,所以采用了在构造函数中处理的方式。并且在头文件的类中定义了控件。

在信号与槽里,最重要的就是connect这个连接

connect(&b1,&QPushButton::pressed,this,&Widget::close);   

//  &b1:信号发出者 指针类型   

 //  &QPushButton::pressed  处理的信号,  &信号发出者的类名::信号类型   

//  this:信号接收者   

 //  &Widget::close   槽函数,信号处理函数

 

其中有一种情况,当槽是自定义的

/* 自定义槽   普通函数的用法*/   

//QT:任意的成员函数,普通全局函数,静态函数   

 //   槽函数需要和信号一致   

//   由于信号没有返回值 所以槽函数也没有返回值

比如说我点完这个按钮是想跳出这个按键里其他的文字,

void Widget::my_slot()

    b2->setText("pangRR beauty...");

}很简单的一个自定义函数

 

 

但是在今天编译过后,出现了问题,后来发现

在头文件的类中,没有加上这个自定义的槽函数,C++的一些基本知识在这里得到体现,融会贯通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值