• QT登录功能实现


     

     .h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. QT_BEGIN_NAMESPACE
    8. namespace Ui { class Widget; }
    9. QT_END_NAMESPACE
    10. class Widget : public QWidget
    11. {
    12. Q_OBJECT
    13. signals:
    14. void jump(); //跳转页面的自定义函数
    15. public slots:
    16. void login_solt(); //登录页面的自定义的槽函数
    17. public:
    18. Widget(QWidget *parent = nullptr);
    19. ~Widget();
    20. private:
    21. Ui::Widget *ui;
    22. };
    23. #endif // WIDGET_H

     .cpp

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. ui->setupUi(this);
    8. s = new client;
    9. //更改窗口标题
    10. this->setWindowTitle("光与夜之恋");
    11. //logo图
    12. ui->logo->setPixmap(QPixmap(":/qt/a1.webp"));
    13. ui->logo->setScaledContents(true);
    14. //用户名密码图
    15. ui->userNamelab->setPixmap(QPixmap(":/qt/q1.webp"));
    16. ui->userNamelab->setScaledContents(true);
    17. ui->pwdlab->setPixmap(QPixmap(":/qt/2.webp"));
    18. ui->pwdlab->setScaledContents(true);
    19. //设置账户密码
    20. ui->pwdEdit->setPlaceholderText("密码");
    21. ui->pwdEdit->setEchoMode(QLineEdit::Password);
    22. //将登录按钮连接到自定义的槽函数中
    23. connect(ui->loginBtn,&QPushButton::clicked,this,&Widget::login_solt);
    24. //将取消按钮连接到自定义的槽函数中
    25. connect(ui->cancleBtn,SIGNAL(clicked()),this,SLOT(close()));
    26. connect(this, &Widget::jump, s, &client::jump_slot);
    27. }
    28. Widget::~Widget()
    29. {
    30. delete ui;
    31. }
    32. void Widget::login_solt()
    33. {
    34. QString username=ui->userNameEdit->text();
    35. QString pwd=ui->pwdEdit->text();
    36. }
    37. void Widget::on_loginBtn_clicked()
    38. {
    39. QString username=ui->userNameEdit->text();
    40. QString pwd=ui->pwdEdit->text();
    41. if(username=="admin"&&pwd=="123456")
    42. {
    43. qDebug()<<"登录成功";
    44. int ret =QMessageBox::information(this,"提示","登录成功",QMessageBox::Ok);
    45. if(ret==QMessageBox::Ok)
    46. {
    47. emit jump();
    48. this->close();
    49. }
    50. }else
    51. {
    52. //qDebug()<<"账号密码不匹配,请重新登录!";
    53. int ret =QMessageBox::critical(this,"提示","登录成功",QMessageBox::Yes|QMessageBox::No);
    54. if(ret==QMessageBox::Yes)
    55. {
    56. //清除密码框内容
    57. ui->pwdEdit->clear();
    58. }
    59. else
    60. {
    61. this->close();
    62. }
    63. }
    64. }
    65. void Widget::on_cancleBtn_clicked()
    66. {
    67. }

     main

    1. #include "widget.h"
    2. #include
    3. #include "client.h"
    4. int main(int argc, char *argv[])
    5. {
    6. QApplication a(argc, argv);
    7. Widget w;
    8. w.show();
    9. client s;
    10. QObject::connect(&w,&Widget::login_solt,&s,&client::jump_slot);
    11. return a.exec();
    12. }

     .h

    1. #ifndef CLIENT_H
    2. #define CLIENT_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. namespace Ui {
    8. class client;
    9. }
    10. class client : public QDockWidget
    11. {
    12. Q_OBJECT
    13. public slots:
    14. void jump_slot();
    15. public:
    16. explicit client(QWidget *parent = nullptr);
    17. ~client();
    18. private:
    19. Ui::client *ui;
    20. };
    21. #endif // CLIENT_H
    1. #include "client.h"
    2. #include "ui_client.h"
    3. client::client(QWidget *parent) :
    4. QDockWidget(parent),
    5. ui(new Ui::client)
    6. {
    7. ui->setupUi(this);
    8. //更改窗口标题
    9. this->setWindowTitle("光与夜之恋");
    10. //logo图
    11. ui->logo->setPixmap(QPixmap(":/qt/592587c702e7f7674a6c7fa72fe21169.jpg"));
    12. ui->logo->setScaledContents(true);
    13. }
    14. client::~client()
    15. {
    16. delete ui;
    17. }
    18. void client::jump_slot()
    19. {
    20. this->show();
    21. }

     

  • 相关阅读:
    Python环境下LaTeX数学公式转图像方案调研与探讨
    如何看待新东方双语主播董宇辉的走红?
    RocketMq概要
    关于调参技巧的问题
    Springboot日志记录方案—官方原版
    OpenCV众筹了一款ROS2机器人rae,开源、功能强、上手简单。来瞅瞅~
    解决 Docker Hub 国内无法访问的方法(Docker 镜像下载加速)
    js-Date对象
    牛客NC199 字符串解码【中等 递归,栈的思想 C++/Java/Go/PHP】
    一分钟带你了解C语言中数据在内存中的存储详解!
  • 原文地址:https://blog.csdn.net/YSTXDY/article/details/133001826