• 1019hw


    登录窗口头文件

    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
    12. #include
    13. #include
    14. #include
    15. #include
    16. #include
    17. QT_BEGIN_NAMESPACE
    18. namespace Ui { class MainWindow; }
    19. QT_END_NAMESPACE
    20. class MainWindow : public QMainWindow
    21. {
    22. Q_OBJECT
    23. public:
    24. MainWindow(QWidget *parent = nullptr);
    25. ~MainWindow();
    26. signals:
    27. void jump();
    28. public slots:
    29. void login_slot();
    30. private slots:
    31. void on_cancel_btn_clicked();
    32. private:
    33. Ui::MainWindow *ui;
    34. };
    35. #endif // MAINWINDOW_H

     登录窗口主文件

    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. //窗口名
    9. this->setWindowTitle("QQ");
    10. this->setWindowIcon(QIcon(":/01login/icon/kun.webp"));
    11. this->setFixedSize(480,400);
    12. QMovie *kk=new QMovie(":/01login/icon/dance.gif");
    13. ui->logo_label->setMovie(kk);
    14. kk->start();
    15. ui->logo_label->setScaledContents(true);
    16. //账号密码图标
    17. ui->host_label->setPixmap(QPixmap(":/01login/icon/zhanghu.png"));
    18. ui->host_label->setScaledContents(true);
    19. ui->passwd_label->setPixmap(QPixmap(":/01login/icon/passwd.jpg"));
    20. ui->passwd_label->setScaledContents(true);
    21. //账号密码文本
    22. ui->host_edit->setPlaceholderText("账号");
    23. ui->passwd_edit->setPlaceholderText("密码");
    24. //连接登录跳转信号和槽函数
    25. connect(ui->login_btn,&QPushButton::clicked,this,&MainWindow::login_slot);
    26. }
    27. void MainWindow::login_slot()
    28. {
    29. QString usrname = ui->host_edit->text();
    30. QString pwd = ui->passwd_edit->text();
    31. if(usrname=="admin"&&pwd=="123456")//若账号密码正确
    32. {
    33. qDebug()<< "login success";
    34. //消息对话框
    35. QMessageBox msg(
    36. QMessageBox::Information,
    37. "通知",
    38. "登陆成功",
    39. QMessageBox::Ok,
    40. this);
    41. int ret = msg.exec();
    42. if(ret==QMessageBox::Ok)
    43. {
    44. this -> close();
    45. }
    46. //跳转到新页面
    47. emit jump();
    48. }
    49. else//若密码错误
    50. {
    51. qDebug()<< "login defeat";
    52. //基于属性弹出消息对话框
    53. QMessageBox msg(
    54. QMessageBox::Critical,
    55. "登录失败",
    56. "账号和密码不匹配,是否重新登录",
    57. QMessageBox::Yes|QMessageBox::No,
    58. this);
    59. int ret = msg.exec();
    60. if(ret==QMessageBox::Yes)//若yes则清空密码
    61. {
    62. ui -> passwd_edit->clear();
    63. }
    64. else//若no则直接关闭登录界面
    65. {
    66. this->close();
    67. }
    68. }
    69. }
    70. MainWindow::~MainWindow()
    71. {
    72. delete ui;
    73. }
    74. void MainWindow::on_cancel_btn_clicked()//取消
    75. {
    76. //基于静态成员函数消息对话框的弹出
    77. int ret = QMessageBox::question(
    78. this,
    79. "再次确认",
    80. "您是否确定要退出登录",
    81. QMessageBox::Yes|QMessageBox::No);
    82. if(ret==QMessageBox::Yes)//若yes则关闭登录界面
    83. {
    84. this->close();
    85. }
    86. else//若no则关闭对话框继续执行登录界面
    87. {
    88. }
    89. }

    跳转页面头文件
     

    1. #ifndef SECOND_H
    2. #define SECOND_H
    3. #include
    4. namespace Ui {
    5. class second;
    6. }
    7. class second : public QWidget
    8. {
    9. Q_OBJECT
    10. public:
    11. explicit second(QWidget *parent = nullptr);
    12. ~second();
    13. public slots:
    14. void jumpslot();
    15. void sureslot();
    16. private:
    17. Ui::second *ui;
    18. };
    19. #endif // SECOND_H

    跳转页面主文件

    1. #include "second.h"
    2. #include "ui_second.h"
    3. second::second(QWidget *parent) :
    4. QWidget(parent),
    5. ui(new Ui::second)
    6. {
    7. ui->setupUi(this);
    8. connect(ui->sure_btn,&QPushButton::clicked,this,&second::sureslot);
    9. }
    10. second::~second()
    11. {
    12. delete ui;
    13. }
    14. void second::jumpslot()
    15. {
    16. this->show();
    17. }
    18. void second::sureslot()
    19. {
    20. this->close();
    21. }

    主文件

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

  • 相关阅读:
    题目 1213: 幸运儿
    codesys TCP客户端程序
    R语言入门笔记2.5
    HiveServer2 常见异常和处理方法
    【RocketMQ】消息的消费总结
    嵌入式信号处理面试题及参考答案(持续更新)
    分布式日志部署
    ADB安装及使用详解
    电脑屏幕亮度怎么调节?台式电脑找不到屏幕亮度怎么办
    软件测试周刊(第82期):其实所有纠结做选择的人心里早就有了答案,咨询只是想得到内心所倾向的选择。
  • 原文地址:https://blog.csdn.net/qiujunhang/article/details/133933632