QT学记二:信号与槽、QMessageBox的使用
1.信号和槽基本概念
信号和槽就是用于对象之间的数据通信,该机制是QT特有的,跟其他的框架不同,信号和槽相当其他的通信机制,要更加安全。
信号 ----- > 函数,该函数不需要实现,只需声明
槽 ------> 函数,该函数需要实现
QT系统中的信号和槽如下图在程序中使用signals来表明信号,public/private/
protected slots来表明槽。

2.信号和槽的机制实现分析
只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用信号槽,必须继承QObject。凡是QObject类(不管是直接子类还是间接子类),都应该在第一行代码写上Q_OBJECT。



3.信号和槽中的connect函数
若使用的是系统中的信号,则无需使用connect函数来连接信号跟槽,而若是自定义的信号(信号是一个函数),则要使用connect函数来连接信号和槽。原型如下:
4.信号与槽的初步应用
在项目 增加信号和槽的方法一:
(QT中控件自带的信号跟槽)在UI设计师(.ui文件)中增加
第一步:右击控件,在弹出的对话框,选择信号


第二步:当点击相应的控件时,对应的槽函数就会被调用


5.登录按钮的槽函数程序设计
功能:点击登录按钮,然后验证用户输入的账号与密码是否正确,程序设计的账号是cks,密码是1234567。

6.结果
输入lks,123456,点击登录,验证失败。输入 cks,123456,验证成功。


7.使用自定义的信号
第一步:在mainwindow.h中定义一个信号,如下。由于信号发出后,也在mainwindow中使用槽函数,所以就一起定义。

第二步:使用connect函数来连接信号跟槽。

第三步:槽函数的实现程序设计(定义)
槽函数接收到信号后,会执行起来,弹出显示框
显示“接收到信号 sendRegister”。

第四步:发送信号
在这里,通过点击注册这个按钮来发送信号sendRegister。因此,需要在注册按钮右键“转到槽”生成槽函数。


结果:

8.QMessageBox提示框的使用
QMessageBox是一个类,QMesssageBox msgBox;定义了对象msgBox。setTest:设置提示内容。msgBox.exec();会运行起来,出现效果图中的提示框。使用时,需要添加头文件:#include <QMessageBox>

9.QMessage添加按钮
在上面,可以看到有一个ok按钮,这是QT中的默认按钮(或者是“确定”按钮)。

10.程序设计

结果:


QMessageBox按钮的文字由英文变成中文
只需要添加如下的代码

源码:https://gitee.com/bodhi-cloud/qt-open-code.git
你的点赞将是我无尽的动力,谢谢!^ -- ^
