Qt学习笔记:1 信号和槽

新建按钮

QPushButton* btn=new QPushButton("close",this);

名称为close

信号和槽

connect(信号发送者(按钮),发送的信号(函数地址)(点击),信号接收者(窗口),处理的槽函数(关闭))

connect(btn,&QPushButton::clicked,this,&QWidget::close);

实现了按钮点击退出的效果

自定义

也可以自定义信号和槽
其中发送的信号只需要声明,不需要实现
class A:void signal();
class B:void slot();
在窗口头文件下创建类的对象a和b
A *a; B *b;
源文件下

this->a=new A(this);
this->b=new B(this);
connect(a,&A::signal,b,&B::slot);

此时需要一个函数触发connect信号,让A能发出signal信号

void Widget::A_emit()
{
    emit a->signal();
}

在connect之后写A_emit();
即可触发

重载

对signal的重载:signal(QString behave);
对slot的重载:slot(QString behave);
在A_emit中写:emit a->signal(“move”);
重载连接用函数指针

void (A::*sn)(QString)=&A::signal;
void (B::*sl)(QString)=&B::slot;
connect(a,sn,b,sl);
A_emit();

信号连接信号

QPushButton* btn2=new QPushButton("wucan",this);
btn2->setGeometry(300,200,50,20);
void (A::*signal2)(void)=&A::signal;
void (B::*slot2)(void)=&B::slot;
connect(a,signal2,b,slot2);
connect(btn2,&QPushButton::clicked,a,signal2);

其中btn2按钮点击信号连接a的信号,而a的信号连接b的槽函数。

断开信号

disconnect(a,signal2,b,slot2);

断掉其中一个连接,信号便无法顺利发出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值