• QT day3


    作业

    1.

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

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

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

    要求:基于属性版和基于静态成员函数版至少各用一个

    要求:尽量每行代码都有注释

    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. // 窗口的相关设置
    9. this->setWindowTitle("客户端登陆");
    10. this->setWindowIcon(QIcon(":/pictrue/wodepeizhenshi.png"));
    11. //标签的相关设置
    12. ui->logoLab->setPixmap(QPixmap(":/pictrue/logo.png"));
    13. ui->logoLab->setScaledContents(true);
    14. //账号和密码
    15. ui->userNameLab->resize(40,40);
    16. ui->userNameLab->setPixmap(QPixmap(":/pictrue/userName.jpg"));
    17. ui->userNameLab->setScaledContents(true);
    18. ui->passwdLab->resize(40,40);
    19. ui->passwdLab->setPixmap(QPixmap(":/pictrue/passwd.jpg"));
    20. ui->passwdLab->setScaledContents(true);
    21. ui->userNameEdit->setPlaceholderText("账号/手机号/邮箱");
    22. ui->passwdEdit->setEchoMode(QLineEdit::Password);
    23. //按钮设置
    24. // connect(ui->cancelBtn, SIGNAL(clicked()), this, SLOT(close())); //按取消关闭窗口
    25. connect(ui->loginBtn, &QPushButton::clicked, this, &Widget::my_slot);
    26. //登录按钮
    27. ui->loginBtn->setIcon(QIcon(":/pictrue/login.png"));
    28. ui->cancelBtn->setIcon(QIcon(":/pictrue/cancel.png"));
    29. }
    30. Widget::~Widget()
    31. {
    32. delete ui;
    33. }
    34. void Widget::my_slot()
    35. {
    36. if("admin" == ui->userNameEdit->text())
    37. {
    38. if("123456" == ui->passwdEdit->text())
    39. {
    40. //用消息对话框这样的类 实例化一个对象
    41. QMessageBox msg(
    42. QMessageBox::Information, //图标
    43. "提示框", //对话框标题
    44. "登陆成功", //对话框文本
    45. QMessageBox::Ok , //提供按钮
    46. this); //父对象
    47. //要用exec()函数执行对话框
    48. int ret = msg.exec();
    49. //对用户选中的按钮进行判断
    50. if(ret == QMessageBox::Ok)
    51. {
    52. //按钮对应的槽函数处理
    53. this->close();
    54. emit jump();
    55. }
    56. }
    57. else
    58. {
    59. //用消息对话框这样的类 实例化一个对象
    60. QMessageBox msg(
    61. QMessageBox::Critical, //图标
    62. "提示框", //对话框标题
    63. "密码错误", //对话框文本
    64. QMessageBox::Yes | QMessageBox::No, //提供按钮
    65. this); //父对象
    66. //要用exec()函数执行对话框
    67. int ret = msg.exec();
    68. //对用户选中的按钮进行判断
    69. if(ret == QMessageBox::Yes)
    70. {
    71. ui->passwdEdit->clear();
    72. }
    73. else
    74. {
    75. this->close();
    76. }
    77. }
    78. }
    79. }
    80. void Widget::on_loginBtn_clicked()
    81. {
    82. }
    83. void Widget::on_cancelBtn_clicked()
    84. {
    85. //直接调用静态成员函数
    86. int ret = QMessageBox::question(this,
    87. "问题",
    88. "是否确定退出登录",
    89. QMessageBox::Yes | QMessageBox::No);
    90. //判断用户选的按钮
    91. if(ret==QMessageBox::Yes)
    92. {
    93. //按钮对应的槽函数处理
    94. this->close();
    95. }
    96. }

    2.思维导图

  • 相关阅读:
    技术分享 | Redis 集群架构解析
    JavaScript学习笔记03
    双端队列(Deque)
    lightdb oracle模式支持sys_refcursor类型
    比赛团队队名及口号
    Kafka入门到精通-阶段三(调优简介)
    虹科分享|终端安全防护|网络安全术语列表(二)
    ffmpeg 从avio_read 到 file_read
    计算机毕业设计springboot基于SpringBoot的智慧校园搜索系统udvbi源码+系统+程序+lw文档+部署
    常用免费网站总结(自用)
  • 原文地址:https://blog.csdn.net/m0_72133977/article/details/133934224