• 9月18日作业


    思维导图

    作业:mywnd.cpp

    1. #include "mywnd.h"
    2. mywnd::mywnd(QWidget *parent)
    3. : QWidget(parent) //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作
    4. {
    5. //窗口设置
    6. this->resize(QSize(500, 433));
    7. this->setWindowTitle("Widget");
    8. this->setWindowIcon(QIcon(":/icon/wodepeizhenshi.png"));
    9. QLabel *lab1 = new QLabel(this);
    10. //图片1
    11. lab1->resize(QSize(500, 200));
    12. lab1->setPixmap(QPixmap(":/icon/logo.png"));
    13. lab1->move(QPoint(0, 0));
    14. lab1->setScaledContents(true);
    15. //图片2
    16. QLabel *lab2 = new QLabel(this);
    17. lab2->resize(QSize(50, 50));
    18. lab2->setPixmap(QPixmap(":/icon/userName.jpg"));
    19. lab2->move(QPoint(60, 230));
    20. lab2->setScaledContents(true);
    21. //图片3
    22. QLabel *lab3 = new QLabel(this);
    23. lab3->resize(QSize(50, 50));
    24. lab3->setPixmap(QPixmap(":/icon/passwd.jpg"));
    25. lab3->move(QPoint(60, 310));
    26. lab3->setScaledContents(true);
    27. //账号行编辑器
    28. lin1 = new QLineEdit(this);
    29. lin1->resize(250, 50);
    30. lin1->move(QPoint(150, 230));
    31. //密码行编辑器
    32. lin2 = new QLineEdit(this);
    33. lin2->resize(250, 50);
    34. lin2->move(QPoint(150, 310));
    35. lin2->setEchoMode(QLineEdit::Password);
    36. //登录按钮
    37. btn1 = new QPushButton(QIcon(":/icon/login.png") ,"登录", this);
    38. btn1->resize(80, 50);
    39. btn1->move(QPoint(130, 370));
    40. //取消按钮
    41. btn2 = new QPushButton(QIcon(":/icon/cancel.png") ,"取消", this);
    42. btn2->resize(80, 50);
    43. btn2->move(QPoint(290, 370));
    44. l1 = new login;
    45. connect(btn1, &QPushButton::clicked, this, &mywnd::Login);
    46. connect(this, &mywnd::jumpToLogin, l1, &login::jumpToLogin_slot);
    47. connect(btn2, &QPushButton::clicked, this, &mywnd::cancel);
    48. }
    49. void mywnd::Login()
    50. {
    51. if(lin1->text()==QString("admin")&&lin2->text()==QString("123456")){
    52. QMessageBox box(QMessageBox::Information, "登录",
    53. "登陆成功", QMessageBox::Ok, this);
    54. box.exec();
    55. emit this->jumpToLogin();
    56. this->close();
    57. }else{
    58. QMessageBox box(QMessageBox::Critical,
    59. "错误", "账号密码不匹配,是否重新登录",
    60. QMessageBox::Yes|QMessageBox::No, this);
    61. box.setDefaultButton(QMessageBox::Yes);
    62. int ret = box.exec();
    63. if(QMessageBox::Yes==ret){
    64. lin2->clear();
    65. }else{
    66. this->close();
    67. }
    68. }
    69. }
    70. void mywnd::cancel()
    71. {
    72. //使用静态成员函数的方式打开一个对话框
    73. int ret = QMessageBox::question(this,
    74. "请问",
    75. "是否确认要退出",
    76. QMessageBox::Yes|QMessageBox::No,
    77. QMessageBox::No);
    78. switch (ret) {
    79. case QMessageBox::Yes:
    80. this->close();
    81. break;
    82. case QMessageBox::No:
    83. break;
    84. }
    85. }
    86. mywnd::~mywnd()
    87. {
    88. }

    mywnd.h

    1. #ifndef MYWND_H
    2. #define MYWND_H //防止文件重复包含
    3. #include //父类的头文件
    4. #include //信息调试头文件
    5. #include //按钮类头文件
    6. #include //行编辑器类头文件
    7. #include //标签类头文件
    8. #include
    9. #include"login.h"
    10. //自定义自己的界面,公告继承自QWidget,父类中重写了绘制事件处理函数
    11. class mywnd : public QWidget
    12. {
    13. Q_OBJECT //信号与槽的对象,没有这个对象,信号与槽就不能使用了
    14. signals:
    15. void jumpToLogin();
    16. public slots:
    17. void Login(); //登录函数
    18. void cancel(); //退出函数
    19. public:
    20. mywnd(QWidget *parent = nullptr); //构造函数的声明,并且有一个带默认参数的形参
    21. ~mywnd(); //析构函数的声明
    22. QLineEdit *lin1;
    23. QLineEdit *lin2;
    24. QPushButton *btn1;
    25. QPushButton *btn2;
    26. login *l1;
    27. };
    28. #endif // MYWND_H

  • 相关阅读:
    SpringBoot 接口 字节数组直接显示为图片
    机器学习基础之《分类算法(8)—随机森林》
    html静态网站简单的学生网页作业源码 基于游戏网站设计与实现共计10个页面 (仿地下城与勇士游戏网页)
    NFT Insider #75:The Sandbox 为Avatar 打造特别活动,Ambire 团队发起第一次官方治理投票
    MyBatis-Plus使用
    SLAM论文详解(5) — Bundle_Adjustment_LM(BALM)论文详解
    一、Unity环境安装
    Excel画图
    跳表C语言
    Java中各种数据格式-json/latex/obo/rdf/ turtle/owl/xml介绍对比示例加使用介绍
  • 原文地址:https://blog.csdn.net/mcslll/article/details/132999040