前述: 信号与槽是Qt学习的一个难点,这里仅写一些我的个人理解,希望对他人也有所帮助。
一、信号与槽简述
首先,信号与槽都是函数,不过一个是触发式的,一个是执行式的。
其次,信号与槽用于两个对象的通信(有可能是自己的一部分和自己整个显示通信)
譬如:登录界面的取消键 一旦”我“被点击(信号函数),整个界面就要执行关闭(槽函数)
二、两种操作手段构建信号与槽机制
1 . connect函数与disconnect函数
(1)规范:
依次:发出信号的对象,也可以说受外界事件影响的主体 若为界面控件,使用界面指针ui->进行调用
对象1发出的信号函数【可以是点击、改变文本框输入内容等等,往往是系统提供的】
接收信号做出响应的对象2
这个响应究竟做了什么操作(槽函数)【可以是输出、关闭、变量大小变化等等,往往是自己可以更改确定的】
代码示例:
connect(ui->btn_sign,SIGNAL(clicked(bool)),this,SLOT(login()));
注意:信号函数的SIGNAL 和槽函数的SLOT
槽函数在头文件中声明时要加 private slots 权限 具体实现写在. cpp文件
(2)断开这种链接也非常简单
disconnect(谁,发出了什么信号,谁,执行了什么操作)即可
2 . 在ui界面选择控件,选择转到槽,选择一个信号函数,
Qt会自动生成cpp的槽函数,只需填入函数体就好
链接关系系统是自动绑定的。