• QTday2


    作业

    完善登录框

    点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。

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

    点击取消按钮后,弹出问题对话框,询问是否确定要退出登录,给出两个按钮,yes|no,点击yes,则直接关闭整个登录界面,如果点击no则进行进行登录

    要求:消息对话框,对象版和静态成员函数版至少各实现一个

    form.h
    
    1. #ifndef FORM_H
    2. #define FORM_H
    3. #include//消息对话框
    4. #include
    5. #include
    6. namespace Ui {
    7. class Form;
    8. }
    9. class Form : public QWidget
    10. {
    11. Q_OBJECT
    12. public slots:
    13. void jump_slot();
    14. void on_bt3_clicked();
    15. public:
    16. explicit Form(QWidget *parent = nullptr);
    17. ~Form();
    18. private:
    19. Ui::Form *ui;
    20. };
    21. #endif // FORM_H
    mainWindow.h
    1. #ifndef MAINWINDOW_H
    2. #define MAINWINDOW_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include//消息对话框 //输出函数对应的头文件
    10. #include
    11. #include"form.h"
    12. QT_BEGIN_NAMESPACE
    13. namespace Ui { class MainWindow; }
    14. QT_END_NAMESPACE
    15. class MainWindow : public QMainWindow
    16. {
    17. Q_OBJECT
    18. signals:
    19. void jump();//自定义跳转信号函数
    20. private slots:
    21. void on_btn1_clicked();
    22. public:
    23. MainWindow(QWidget *parent = nullptr);
    24. ~MainWindow();
    25. private:
    26. Ui::MainWindow *ui;
    27. QPushButton *btn1;
    28. QPushButton *btn2;
    29. QLineEdit *edit1;
    30. QLineEdit *edit2;
    31. };
    32. #endif // MAINWINDOW_H

     

    form.cpp
    
    1. #include "form.h"
    2. #include "ui_form.h"
    3. Form::Form(QWidget *parent) :
    4. QWidget(parent),
    5. ui(new Ui::Form)
    6. {
    7. ui->setupUi(this);
    8. }
    9. Form::~Form()
    10. {
    11. delete ui;
    12. }
    13. //跳转
    14. void Form::jump_slot()
    15. {
    16. //直接调用静态成员
    17. // QMessageBox box(QMessageBox::Information,"信息","登录成功",QMessageBox::Yes,
    18. // this);
    19. // box.setDefaultButton(QMessageBox::Yes);//默认的
    20. // box.setButtonText(QMessageBox::Yes,"OK");
    21. // int ret2=box.exec();
    22. // if(ret2==QMessageBox::Yes)
    23. // {
    24. // this->close();
    25. // }
    26. //connect(ui->btn3,&QPushButton::clicked,func);
    27. this->show();
    28. }
    29. void Form::on_bt3_clicked()
    30. {
    31. close();
    32. }
    mainWindow.cpp
    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. MainWindow::MainWindow(QWidget *parent)
    4. : QMainWindow(parent)
    5. , ui(new Ui::MainWindow)
    6. {
    7. ui->setupUi(this);
    8. this->setFixedSize(600,400);//设置固定尺寸
    9. this->setWindowIcon(QIcon(":/new/prefix1/tuku/yh.png"));//改变左上角图标的位
    10. this->setWindowTitle("易碗浆糊");//窗口的名字
    11. //this->setStyleSheet("background-color:pink;");//背景颜色
    12. QLabel *lab1=new QLabel(this);//实例化一个标签
    13. lab1->resize(600,170);//重新设置尺寸
    14. lab1->setStyleSheet("background-color:yellow");
    15. lab1->setAlignment(Qt::AlignCenter);
    16. lab1->setPixmap(QPixmap(":/new/prefix1/tuku/fjh.png"));
    17. lab1->setScaledContents(true);
    18. this->setStyleSheet("background-color:white;");//背景颜色
    19. //用户名框
    20. edit1=new QLineEdit(this);
    21. edit1->resize(230,45);
    22. edit1->move(lab1->x()+200,lab1->y()+200);
    23. edit1->setPlaceholderText("用户名");//设置占位文本
    24. //密码框
    25. edit2=new QLineEdit(this);
    26. edit2->resize(230,45);
    27. edit2->move(edit1->x(),edit1->y()+75);
    28. edit2->setPlaceholderText("密码");//设置占位文本
    29. edit2->setEchoMode(QLineEdit::Password);//设置回显模式
    30. //实例化一个标签
    31. QLabel *lab2=new QLabel(this);
    32. lab2->resize(45,45);//重新设置尺寸
    33. lab2->setAlignment(Qt::AlignCenter);
    34. lab2->setPixmap(QPixmap(":/new/prefix1/tuku/wxn.png"));
    35. lab2->setScaledContents(true);
    36. lab2->move(lab1->x()+140,lab1->y()+200);
    37. //实例化一个标签
    38. QLabel *lab3=new QLabel(this);
    39. lab3->resize(45,45);//重新设置尺寸
    40. lab3->setAlignment(Qt::AlignCenter);
    41. lab3->setPixmap(QPixmap(":/new/prefix1/tuku/wxnnn.png"));
    42. lab3->setScaledContents(true);
    43. lab3->move(lab1->x()+140,lab1->y()+275);
    44. //实例化一个按钮
    45. //QPushButton *btn1=new QPushButton(this);
    46. this->btn1=new QPushButton("btn1",this);
    47. btn1->setText("登录");
    48. btn1->resize(70,40);
    49. btn1->move(lab3->x()+80,lab3->y()+70);
    50. btn1->setIcon(QIcon(":/new/prefix1/tuku/wq.png"));
    51. connect(btn1,&QPushButton::clicked,this,&MainWindow::on_btn1_clicked);
    52. // btn1->setStyleSheet("background-color:white;border-radius:10px;");//设置组件背景色
    53. //实例化一个按钮
    54. QPushButton *btn2=new QPushButton(this);
    55. btn2->setText("退出");
    56. btn2->resize(70,40);
    57. btn2->move(btn1->x()+130,btn1->y());
    58. // btn2->setStyleSheet("background-color:white;border-radius:10px;");//设置组件背景色
    59. btn2->setIcon(QIcon(":/new/prefix1/tuku/wq2.png"));
    60. }
    61. void MainWindow::on_btn1_clicked()
    62. {
    63. if(edit1->text()=="admin" &&edit2->text()=="12345")
    64. {
    65. emit jump();
    66. this->hide();
    67. }
    68. else
    69. {
    70. QMessageBox box(QMessageBox::Critical,"密码错误","账号密码不匹配,是否重新登录",
    71. QMessageBox::Yes|QMessageBox::No,
    72. this);
    73. box.setButtonText(QMessageBox::Yes,"OK");
    74. box.setButtonText(QMessageBox::No,"cancel");
    75. int ret=box.exec();
    76. if(ret==QMessageBox::Yes)
    77. {
    78. edit1->clear();//清空
    79. edit2->clear();//清空
    80. }else if(ret==QMessageBox::No)
    81. {
    82. int ret1= QMessageBox::question(this,"问题","是否确定要退出登录",QMessageBox::Yes|QMessageBox::No,QMessageBox::No);
    83. //对用户选中的按钮进行判断
    84. if(ret1==QMessageBox::Yes)
    85. {
    86. this->close();
    87. }else if(ret1==QMessageBox::No)
    88. {
    89. edit1->clear();//清空
    90. edit2->clear();//清空
    91. }
    92. }
    93. }
    94. }
    95. MainWindow::~MainWindow()
    96. {
    97. delete ui;
    98. }

     main.cpp

    1. #include "mainwindow.h"
    2. #include "form.h"
    3. #include
    4. int main(int argc, char *argv[])
    5. {
    6. QApplication a(argc, argv);
    7. MainWindow w;
    8. w.show();
    9. Form s;//定义第二个界面
    10. QObject::connect(&w,&MainWindow::jump,&s,&Form::jump_slot);
    11. return a.exec();
    12. }

     

     

     

  • 相关阅读:
    力扣刷题练习——统计数组中的元素
    ubuntu云服务器配置SFTP服务
    阿里云-AnalyticDB【分析型数据库】总结介绍
    Redis_01_Redis安装与使用
    图学习初探Paddle Graph Learning 构建属于自己的图【系列三】
    xxxxx
    深度学习-07-反向传播的自动化
    【逆向基础】九、dnSpy使用技巧随记
    python15种3D绘图函数总结
    人工智能研究的各个学派
  • 原文地址:https://blog.csdn.net/HYL1234511/article/details/132995057