当前位置:   article > 正文

QT的学习

QT的学习

代码练习

制作登录界面

如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面

如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面

如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户点击Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能

初始启动界面

头文件
  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QWidget>
  4. #include <QTextToSpeech>
  5. #include <QDebug>
  6. #include <QMessageBox>
  7. QT_BEGIN_NAMESPACE
  8. namespace Ui { class Widget; }
  9. QT_END_NAMESPACE
  10. class Widget : public QWidget
  11. {
  12. Q_OBJECT
  13. public:
  14. Widget(QWidget *parent = nullptr);
  15. ~Widget();
  16. signals:
  17. void Log_in();
  18. private slots:
  19. void on_pushButton2_clicked();
  20. void PushbuttonClicked();
  21. private:
  22. Ui::Widget *ui;
  23. QTextToSpeech *speaker;
  24. };
  25. #endif // WIDGET_H
源文件
  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent)
  4. : QWidget(parent)
  5. , ui(new Ui::Widget)
  6. ,speaker(new QTextToSpeech(this))
  7. {
  8. ui->setupUi(this);
  9. this->setWindowFlag(Qt::FramelessWindowHint);
  10. this->setAttribute(Qt::WA_TranslucentBackground);
  11. connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(on_pushButton2_clicked()));
  12. connect(ui->pushButton,&QPushButton::clicked,this,&Widget::PushbuttonClicked);
  13. }
  14. Widget::~Widget()
  15. {
  16. delete ui;
  17. }
  18. void Widget::on_pushButton2_clicked()
  19. {
  20. int ret = QMessageBox::question(this, "提示", "你真的启不动吗?", QMessageBox::Yes | QMessageBox::No);
  21. //根据用户选中的按钮,执行不同的功能
  22. if(ret == QMessageBox::Yes)
  23. {
  24. this->close();
  25. }
  26. else
  27. {
  28. }
  29. }
  30. void Widget::PushbuttonClicked()
  31. {
  32. speaker->say(ui->pushButton->text());
  33. this->close();
  34. emit Log_in();
  35. }

登录界面

头文件
  1. #ifndef LOGING_H
  2. #define LOGING_H
  3. #include <QWidget>
  4. #include <QDebug>
  5. #include <QMessageBox>
  6. namespace Ui {
  7. class Loging;
  8. }
  9. class Loging : public QWidget
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit Loging(QWidget *parent = nullptr);
  14. ~Loging();
  15. signals:
  16. void Loged1();
  17. public slots:
  18. void Log_rec();
  19. private slots:
  20. void on_pushButton_clicked();
  21. private:
  22. Ui::Loging *ui;
  23. };
  24. #endif // LOGING_H
源文件
  1. #include "loging.h"
  2. #include "ui_loging.h"
  3. Loging::Loging(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Loging)
  6. {
  7. ui->setupUi(this);
  8. this->setWindowFlag(Qt::FramelessWindowHint);
  9. this->setAttribute(Qt::WA_TranslucentBackground);
  10. ui->lineEdit->setPlaceholderText("支持QQ号/邮箱/手机号登录");
  11. ui->lineEdit_2->setPlaceholderText("请输入密码");
  12. ui->lineEdit_2->setEchoMode(QLineEdit::Password);
  13. }
  14. Loging::~Loging()
  15. {
  16. delete ui;
  17. }
  18. void Loging::Log_rec()
  19. {
  20. this->show();
  21. }
  22. void Loging::on_pushButton_clicked()
  23. {
  24. if(QString(ui->lineEdit->text())=="admin")
  25. {
  26. if(QString(ui->lineEdit_2->text())=="123456")
  27. {
  28. QMessageBox msg(QMessageBox::Information, "提示", "登录成功", QMessageBox::Ok, this);
  29. int ret = msg.exec();
  30. if(ret == QMessageBox::Ok)
  31. {
  32. this->close();
  33. emit Loged1();
  34. qDebug() << "4 called";
  35. }
  36. }
  37. else
  38. {
  39. int ret = QMessageBox::question(this, "提示", "账号或密码错误,是否重新登录", QMessageBox::Yes | QMessageBox::No);
  40. //根据用户选中的按钮,执行不同的功能
  41. if(ret == QMessageBox::Yes)
  42. {
  43. ui->lineEdit_2->clear();
  44. }
  45. else
  46. {
  47. this->close();
  48. }
  49. }
  50. }
  51. else
  52. {
  53. int ret = QMessageBox::question(this, "提示", "账号或密码错误,是否重新登录", QMessageBox::Yes | QMessageBox::No);
  54. //根据用户选中的按钮,执行不同的功能
  55. if(ret == QMessageBox::Yes)
  56. {
  57. ui->lineEdit_2->clear();
  58. }
  59. else
  60. {
  61. this->close();
  62. }
  63. }
  64. }

加载界面

头文件
  1. #ifndef INFOR_H
  2. #define INFOR_H
  3. #include <QWidget>
  4. #include <QDebug>
  5. namespace Ui {
  6. class infor;
  7. }
  8. class infor : public QWidget
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit infor(QWidget *parent = nullptr);
  13. ~infor();
  14. public slots:
  15. void Loged_rec1();
  16. public slots:
  17. void push_close();
  18. private:
  19. Ui::infor *ui;
  20. };
  21. #endif // INFOR_H
源文件
  1. #include "infor.h"
  2. #include "ui_infor.h"
  3. infor::infor(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::infor)
  6. {
  7. ui->setupUi(this);
  8. this->setWindowFlag(Qt::FramelessWindowHint);
  9. this->setAttribute(Qt::WA_TranslucentBackground);
  10. connect(ui->pushButton,&QPushButton::clicked,this,&infor::push_close);
  11. }
  12. infor::~infor()
  13. {
  14. delete ui;
  15. }
  16. void infor::Loged_rec1()
  17. {
  18. qDebug() << "1 called";
  19. ui->label_2->setText("登陆成功!正在加载请稍后...");
  20. this->show();
  21. }
  22. void infor::push_close()
  23. {
  24. qDebug() << "3 called";
  25. this->close();
  26. }

效果演示

登录第三版

思维导图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/317666
推荐阅读
相关标签
  

闽ICP备14008679号