紧接上回,我们虽然已经做好了QQ登录界面的整体框架,但是我们会发现,无论我们点击登录按钮还是注册按钮,都是没有反应的,今天我们就来看看如何解决按钮响应的问题吧!
首先我们要知道,想要让按钮响应就需要我们使用QT信号和槽,接下来我们详细了解这两者的作用。
首先我们要给控件改名字:
为什么要改名字呢?为了代码分析更方便,更易懂。
控件名要通俗易懂;
我们双击窗体中控件,可以在右边的对象栏中进行控件名的修改
什么是信号和槽?
信号就是点击控件时发出的信号(我们可以理解为触发中断),槽则与控件一一对应,每一个控件都有自己对应的槽,按钮有四个信号,稍后我们来看。
按钮的信号都有哪些:
常用的是第一个信号。
当我们点击按钮时就会发送信号,信号就会触发槽函数。
槽:槽就是槽函数的简称,我们把槽函数绑定在某一个控件信号上(可以理解为中断机制或者回调函数机制)。
如何关联信号和槽?
第一种:自动关联
右键点击控件,点击转入槽,QT会为我们自动生成槽函数
在 widget.h头文件中会为我们自动生成对应的槽函数如上图所示。
这里需要注意一下:
槽函数只能声明在private slots或者public slots权限下!!
我们在此函数中写入“hello world”
编译之后,每当我们点击按钮时就会打印出hello world
第二种:手动关联
手动关联我们直接在widget.cpp文件中的箭头指向的函数体内进行connect()操作
第一个参数是你想要关联的控件名称,第二个参数是信号类型,第三个参数是调用对象的this指针,第四个参数是获取槽函数。
解释为:当对象LogicLogin发出信号SIGNAL(clicked())时,this对象就会调用槽函数SLOT();