一、信号与槽说明
信号 signal
当控件被点下、按下、松开等事件发生的时候,会发送一个信号。我觉得可以理解成触发事件。
槽 slot
就是一个函数,用来处理signal事件的函数。
关联
信号和槽要进行关联,使用QObject::connect(sender, SIGNAL(signal()),receiver,SLOT(slot()));
connect是QObject的一个静态函数,其中QObject可以忽略。
要注意的是:
- 一个信号可以连接多个槽
- 多个信号可以连接同一个槽
- 一个信号可以连接另一个信号
二、可视化生成槽函数原型
- 创建一个窗体
- 右键点按钮控件,选择转到槽
- 选择accept
- 可以看到源代码中生成了相关的槽函数
- 添加其它一些文本框这里给两个文档框分别命名 : txtName txtPassword
三、添加一点逻辑代码
#include "dialoglogin.h"
#include "ui_dialoglogin.h"
#include <QDebug>
DialogLogin::DialogLogin(QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogLogin)
{
ui->setupUi(this);
// 固定窗口大小
setFixedSize(this->width(),this->height());
setWindowTitle("测试");
}
DialogLogin::~DialogLogin()
{
delete ui;
}
void DialogLogin::on_pushButton_clicked()
{
if(2>1){
QString name = this->ui->txtName->text();
QString pass = this->ui->txtPassword->text();
if(name=="user" && pass =="123456"){
qDebug() << "Success" << endl;
}else{
qDebug() << "Failure" << endl;
}
}
}
修改入口:
#include "mainwindow.h"
#include "dialoglogin.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DialogLogin w;
w.show();
return a.exec();
}
四、运行看看效果
输入账号 user 密码123456 可以看到控制台打印 Success
本文暂时没有评论,来添加一个吧(●'◡'●)