计算机系统应用教程网站

网站首页 > 技术文章 正文

C++跨平台库QT学习4 可视化建立信号与槽

btikc 2024-09-08 12:02:38 技术文章 17 ℃ 0 评论



一、信号与槽说明

信号 signal

当控件被点下、按下、松开等事件发生的时候,会发送一个信号。我觉得可以理解成触发事件。

槽 slot

就是一个函数,用来处理signal事件的函数。

关联

信号和槽要进行关联,使用QObject::connect(sender, SIGNAL(signal()),receiver,SLOT(slot()));

connect是QObject的一个静态函数,其中QObject可以忽略。

要注意的是:

  • 一个信号可以连接多个槽
  • 多个信号可以连接同一个槽
  • 一个信号可以连接另一个信号

二、可视化生成槽函数原型

  1. 创建一个窗体
  2. 右键点按钮控件,选择转到槽
  3. 选择accept
  4. 可以看到源代码中生成了相关的槽函数
  5. 添加其它一些文本框这里给两个文档框分别命名 : 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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表