• Qt --- Day01


    效果图

    头像的圆形未实现

    单击登陆,触发信号与槽

    enter_widget.h

    1. #ifndef ENTER_H
    2. #define ENTER_H
    3. #include
    4. #include
    5. #include
    6. class enter_widget : public QDialog
    7. {
    8. Q_OBJECT
    9. public:
    10. explicit enter_widget(QDialog *parent = nullptr);
    11. private:
    12. QLabel *label;
    13. QTimer * time;
    14. signals:
    15. };
    16. #endif // ENTER_H

    widget.h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include //基类QWidget的头文件
    4. #include //信息调试类,用于输出数据使用
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include
    10. #include"enter_widget.h"
    11. class Widget : public QWidget
    12. {
    13. Q_OBJECT //QT的信号与槽元对象
    14. public:
    15. Widget(QWidget *parent = nullptr);//默认参数构造函数声明
    16. ~Widget();//虚析构声明
    17. private:
    18. QLabel *pic;
    19. QLabel *tx;
    20. QPushButton* enter;
    21. QPushButton* login;
    22. QLabel* user;
    23. QLabel* passwd;
    24. QLineEdit* user_l;
    25. QLineEdit* passwd_l;
    26. enter_widget* en;
    27. };
    28. #endif // WIDGET_H

    enter_widget.cpp

    1. #include "enter_widget.h"
    2. enter_widget::enter_widget(QDialog *parent) : QDialog(parent)
    3. {
    4. this->setWindowFlag(Qt::FramelessWindowHint);
    5. this->setFixedSize(200,50);
    6. this->setStyleSheet("border:1 solid black");
    7. label = new QLabel(this);
    8. label->resize(200,50);
    9. label->setText("登录成功");
    10. label->setAlignment(Qt::AlignCenter);
    11. label->setStyleSheet("border:0px solid black");
    12. time = new QTimer(this);
    13. time->start(3000);
    14. connect(time,&QTimer::timeout,this,&QDialog::close);
    15. }

    widget.cpp

    1. #include "widget.h"
    2. Widget::Widget(QWidget *parent)
    3. : QWidget(parent)
    4. {
    5. qDebug()<<this->size(); //获取当前姐买你的尺寸
    6. qDebug()<<this->width(); //获取当前组件的宽度
    7. qDebug()<<this->height(); //获取当前组件的高度
    8. this->setWindowTitle("QQ");
    9. //this->resize(500,400);//重新设置界面大小
    10. //this->resize(QSize(1000,1000));
    11. this->setFixedSize(500,400);//设置固定的界面大小
    12. //this->setMaximumSize(600,700);//最大界面大小
    13. //this->setMinimumSize(200,300);//最小界面大小
    14. this->setWindowIcon(QIcon("C:\\Users\\12609\\Downloads\\qq.png"));
    15. pic = new QLabel(this);
    16. pic->resize(this->width(),130);
    17. pic->setPixmap(QPixmap("E:\\C++\\qt\\fm.png"));
    18. pic->setScaledContents(true);
    19. tx = new QLabel(this);
    20. tx->resize(100,100);
    21. tx->move(200,60);
    22. tx->setPixmap(QPixmap("E:\\C++\\qt\\2.jpg"));
    23. tx->setScaledContents(true);
    24. enter = new QPushButton;
    25. enter->setParent(this);
    26. enter->setText("登录");
    27. enter->resize(100,50);
    28. enter->move(120,300);
    29. enter->setIcon(QIcon("C:\\Users\\12609\\Downloads\\enter.png"));
    30. enter->setStyleSheet("border:0px solid black;border-radius:10;background-color:#FFFFFF");
    31. login = new QPushButton;
    32. login->setParent(this);
    33. login->setText("注册");
    34. login->resize(100,50);
    35. login->move(280,300);
    36. login->setIcon(QIcon("C:\\Users\\12609\\Downloads\\enter.png"));
    37. login->setStyleSheet("border:0px solid black;border-radius:10;background-color:#FFFFFF");
    38. user = new QLabel;
    39. user->setParent(this);
    40. user->setText("用户名:");
    41. user->resize(60,30);
    42. user->setAlignment(Qt::AlignCenter);
    43. //user->setFixedSize(50,20);
    44. user->move(enter->x(),enter->y()-120);
    45. passwd = new QLabel(this);
    46. passwd->setText("密 码:");
    47. passwd->resize(60,30);
    48. passwd->setAlignment(Qt::AlignCenter);
    49. //user->setFixedSize(50,20);
    50. passwd->move(enter->x(),enter->y()-60);
    51. user_l = new QLineEdit(this);
    52. user_l->resize(200,30);
    53. user_l->move(user->x()+60,user->y());
    54. user_l->setPlaceholderText("请输入用户名");
    55. user_l->setStyleSheet("border:0px solid black;border-radius:10;background-color:#bfbfbf");
    56. passwd_l= new QLineEdit(this);
    57. passwd_l->resize(200,30);
    58. passwd_l->move(passwd->x()+60,passwd->y());
    59. passwd_l->setPlaceholderText("请输入密码");
    60. passwd_l->setEchoMode(QLineEdit::Password);
    61. passwd_l->setStyleSheet("border:0px solid black;border-radius:10;background-color:#bfbfbf");
    62. //切换界面
    63. en = new enter_widget;
    64. connect(enter,&QPushButton::clicked,en,&enter_widget::exec);
    65. }
    66. Widget::~Widget()
    67. {
    68. }

    main.cpp

    1. #include "widget.h"
    2. #include
    3. int main(int argc, char *argv[])
    4. {
    5. QApplication a(argc, argv);//实例化一个应用程序类对象
    6. Widget w;//实例化一个自定义的图形化界面类对象
    7. w.show();//由基类提供用于展示自己的组件和子组件
    8. return a.exec();//阻塞等待用户操作、信号与槽等事件发生
    9. }

  • 相关阅读:
    【代码精读】进入optee时中断都是开启的还是关闭的?
    linux redis自启动
    【C++深度探索】全面解析多态性机制(二)
    JavaScript 编写排序算法:冒泡排序、选择排序、插入排序
    开发微信网页及调试方法
    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。
    (二)springcloud实战之config配置中心
    CCF编程能力等级认证GESP—C++1级—样题1
    [开源精品] C#.NET im 聊天通讯架构设计 -- FreeIM 支持集群、职责分明、高性能
    GBase 8s典型安装
  • 原文地址:https://blog.csdn.net/weixin_61882921/article/details/132910620