QT实现窗口的账户以及密码判断登录和退出 您所在的位置:网站首页 qq登录后怎么退出账号和密码 QT实现窗口的账户以及密码判断登录和退出

QT实现窗口的账户以及密码判断登录和退出

2024-07-15 17:13| 来源: 网络整理| 查看: 265

一、作业要求:

1、找出槽函数调用两次的原因

        在Qt中使用信号调用槽函数时,当槽函数的函数名定义格式为 “on_对象名_信号”时,则不需要在使用connect来连接信号与槽函数,系统会自动连接信号与槽函数。如果再次使用了connect来连接,则会调用两次槽函数。

2、完善登录界面,登录按钮对应的槽函数中,判断所填写账户密码是否正确,默认账户“admin”,密码“123456”,如果匹配成功,则输出登录成功并关闭界面,如果登录失败,输出登录失败,并清空密码框中的内容,点击取消按钮,则关闭界面

实现过程:

头文件:

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); public slots: void onclose(); void sign(); private: QLabel *lab1; //无参构造 QLabel *lab2; //定义标签,顺便指定父组件 QLabel *lab3; //定义标签,顺便指定父组件 QLineEdit *edit1; //无参构造 QLineEdit *edit3; QPushButton *btn; //无参构造 QPushButton *btn1; //构造按钮时,指定父组件 QMessageBox *box; //弹窗 Ui::MainWindow *ui; }; #endif // MAINWINDOW_H

源文件:

#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include //完善登录界面,登录按钮对应的槽函数中,判断所填写账户密码是否正确,默认账户“admin”,密码“123456”, //如果匹配成功,则输出登录成功并关闭界面,如果登录失败,输出登录失败,并清空密码框中的内容,点击取消按钮,则关闭界面 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //设置窗口标题 this->setWindowTitle(QString("QQ")); //使用匿名对象进行传递 //设置窗口图标 this->setWindowIcon(QIcon("F:/2022_Cplus_pro/day8/01_frame/1.png")); //设置固定尺寸 this->setFixedSize(800,600); //定义标签Lable lab1=new QLabel; //无参构造 lab1->setParent(this); //设置父组件 lab1->setText("账户:"); //设置文本信息 lab1->move(230,250); //移动组件位置 lab1->resize(200,40); lab2=new QLabel(this); //定义标签,顺便指定父组件 lab2->setText("密码:"); //设置文本信息 lab2->move(230,330); lab1->resize(200,40); lab3=new QLabel(this); //定义标签,顺便指定父组件 lab3->resize(800,200); lab3->setScaledContents(true); lab3->setPixmap(QPixmap("F:/2022_Cplus_pro/day8/01_frame/2.png")); //定义行编辑器edit edit1=new QLineEdit; //无参构造 edit1->setParent(this); //设置父组件 edit1->move(300,250); //移动组件位置 edit1->resize(200,40); edit3=new QLineEdit(this); edit3->move(300,330); //移动组件位置 edit3->setEchoMode(QLineEdit::Password); edit3->resize(200,40); //自定义一个按钮button btn=new QPushButton; //无参构造 btn->setParent(this); //设置父组件函数 btn->resize(80,40); //重新设置按钮框大小 btn->setText("登录"); //设置按钮上的文本信息 btn->move(400,400); //移动组件位置 //定义按钮1,顺便指定父组件 btn1=new QPushButton(this); //构造按钮时,指定父组件 btn1->setText("按钮1"); //设置按钮上的文本信息 btn1->resize(80,40); //重新设置按钮框大小 btn1->setText("取消"); //设置按钮上的文本信息 btn1->move(500,400); //移动组件位置 connect(btn1,SIGNAL(clicked()),this,SLOT(onclose())); //连接按钮btn1关闭窗口信号和槽函数 connect(btn,SIGNAL(clicked()),this,SLOT(sign())); //连接按钮btn登录信号和槽函数 } MainWindow::~MainWindow() { delete ui; } void MainWindow::sign() //登录槽函数 { box=new QMessageBox; //弹窗 box->setWindowTitle("提示"); if(QString(this->edit1->text())=="admin") if(QString(this->edit3->text())=="123456") { box->setText("登录成功"); box->show(); box->exec();//等待用户响应 close(); } else if(QString(this->edit3->text())==0) { box->setText("请输入密码"); box->show();//展示 box->exec();//等待用户响应 } else { box->setText("密码错误"); this->edit3->clear(); box->show();//展示 box->exec();//等待用户响应 } else if(QString(this->edit1->text())==0) { box->setText("请输入账号"); box->show();//展示 box->exec();//等待用户响应 } else { box->setText("账号错误"); box->show();//展示 box->exec();//等待用户响应 } } void MainWindow::onclose() //退出槽函数 { close(); }

 

测试文件

#include "mainwindow.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }

实现效果:

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有