• 2024.6.17 作业 xyt


    今日作业:
    升级优化自己应用程序的登录界面。
         要求: 1. qss实现
                     2. 需要有图层的叠加 (QFrame)
                     3. 设置纯净窗口后,有关闭等窗口功能。
                     4. 如果账号密码正确,则实现登录界面关闭,另一个应用界面显示。

    1. //day3_04.h
    2. #ifndef DAY3_04_H
    3. #define DAY3_04_H
    4. #include
    5. #include
    6. QT_BEGIN_NAMESPACE
    7. namespace Ui { class day3_04; }
    8. QT_END_NAMESPACE
    9. class day3_04 : public QWidget
    10. {
    11. Q_OBJECT
    12. public:
    13. day3_04(QWidget *parent = nullptr);
    14. ~day3_04();
    15. signals:
    16. void my_jump(); //第一个界面的信号
    17. private slots:
    18. void on_pushButton_2_clicked();
    19. void on_pushButton_clicked();
    20. void on_pushButton_6_clicked();
    21. private:
    22. Ui::day3_04 *ui;
    23. };
    24. #endif // DAY3_04_H
    1. //Second.h
    2. #ifndef SECOND_H
    3. #define SECOND_H
    4. #include
    5. namespace Ui {
    6. class Second;
    7. }
    8. class Second : public QWidget
    9. {
    10. Q_OBJECT
    11. public:
    12. explicit Second(QWidget *parent = nullptr);
    13. ~Second();
    14. public slots:
    15. void jump_slot(); //第二个界面准备的槽函数
    16. private:
    17. Ui::Second *ui;
    18. };
    19. #endif // SECOND_H
    1. //day3_04.cpp
    2. #include "day3_04.h"
    3. #include "ui_day3_04.h"
    4. day3_04::day3_04(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::day3_04)
    7. {
    8. ui->setupUi(this);
    9. //去掉头部
    10. this->setWindowFlag(Qt::FramelessWindowHint);
    11. //去掉空白部分
    12. this->setAttribute(Qt::WA_TranslucentBackground);
    13. }
    14. day3_04::~day3_04()
    15. {
    16. delete ui;
    17. }
    18. void day3_04::on_pushButton_2_clicked()
    19. {
    20. this->close();
    21. }
    22. void day3_04::on_pushButton_clicked()
    23. {
    24. //获取输入的文本
    25. QString user1 = ui->user->text();
    26. QString line1 = ui->line->text();
    27. if(user1.isEmpty() || line1.isEmpty())
    28. {
    29. QMessageBox::warning(this, "Warning", "请输入账号或密码");
    30. }
    31. else
    32. {
    33. //判断账号和密码正确性
    34. if(user1 == "admin" && line1 == "123456")
    35. {
    36. //关闭窗口
    37. this->close();
    38. //触发信号
    39. emit my_jump();
    40. }
    41. else
    42. {
    43. QMessageBox::warning(this, "Access Denied", "登录失败:密码错误");
    44. ui->user->clear();
    45. ui->line->clear();
    46. }
    47. }
    48. }
    49. void day3_04::on_pushButton_6_clicked()
    50. {
    51. this->showMinimized();
    52. }
    1. //main.cpp
    2. #include "day3_04.h"
    3. #include "second.h" //包含第二个头文件
    4. #include
    5. int main(int argc, char *argv[])
    6. {
    7. QApplication a(argc, argv);
    8. //实例化第一个界面
    9. day3_04 w;
    10. w.show();
    11. //实例化第二个界面
    12. Second s;
    13. //连接
    14. QObject::connect(&w, &day3_04::my_jump, &s, &Second::jump_slot);
    15. return a.exec();
    16. }
    1. //second.cpp
    2. #include "second.h"
    3. #include "ui_second.h"
    4. Second::Second(QWidget *parent) :
    5. QWidget(parent),
    6. ui(new Ui::Second)
    7. {
    8. ui->setupUi(this);
    9. }
    10. Second::~Second()
    11. {
    12. delete ui;
    13. }
    14. //第二个界面槽函数的实现
    15. void Second::jump_slot()
    16. {
    17. //显示
    18. this->show();
    19. }

  • 相关阅读:
    Nginx服务器的整体架构
    考前冲刺上岸浙工商MBA的备考经验分享
    【PHY】3GPP UE能力类别的变化
    Python实战系列-获取单页和多页京东评论
    乐凡三防平板:制造业移动作业平台的专业高效之选
    加密密钥应用范围及特点优势分析
    Shopee买家通系统一款批量注册虾皮买家号软件
    PDF格式分析(七十)——注释边框样式及外观流
    [附源码]计算机毕业设计JAVA医院门诊信息管理系统
    C++中的菱形继承问题及解决方案
  • 原文地址:https://blog.csdn.net/xueyt7777/article/details/139753946