当前位置: 首页 > news >正文

【Qt】仿照qq界面的设计

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>//QT中信息调试类,用于输出数据,无需使用该类的实例化对象,直接使用成员函数即可
#include <QIcon>//图标类
#include <QPushButton>//按钮类
#include <QLabel>//标签类
#include <QMovie>//动画类
#include <QLineEdit>//行编辑器
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;QPushButton *btn1;//登录按钮QPushButton *btn2;//取消按钮QLineEdit *lin1;//账号输入框QLineEdit *lin2;//密码输入框QLabel *lab1;//账号小图标QLabel *lab2;//密码小图标QLabel *lab3;//动图框QLabel *lab4;//用户头像QMovie *movie;//动图private slots:void my_slot(); //自定义登录函数};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//设置画布this->resize(500,400);this->setFixedSize(500,400);//设置固定大小不允许拉伸this->setStyleSheet("background-color:white;");//登录按钮btn1 = new QPushButton("登录",this);btn1->resize(100,30);//设置按钮大小btn1->move(149,300);//移动登录按钮btn1->setStyleSheet("background-color:skyblue;border-radius:10;");//设置样式表connect(this->btn1,&QPushButton::clicked,this,&Widget::my_slot);//取消按钮btn2 = new QPushButton("取消",this);btn2->resize(btn1->size());//设置取消按钮和登陆按钮一样大btn2->move(btn1->x()+btn1->width()+2,btn1->y());//移动取消按钮btn2->setStyleSheet("border-radius:10;border: 1px solid black;");//设置样式表//连接取消按到函数中,点击取消执行关闭窗口connect(this->btn2,&QPushButton::clicked,[&](){this->close();});//账号输入框lin1 = new QLineEdit(this);lin1->resize(280,35);//重新设置大小lin1->move(150,200);//移动位置//密码输入框lin2 = new QLineEdit(this);lin2->resize(lin1->size());//重新设置大小lin2->move(lin1->x(),lin1->y()+lin1->height()+5);//移动位置lin2->setPlaceholderText("密码");//设置占位文字lin2->setEchoMode(QLineEdit::Password);//设置回显模式//账号小图标lab1 = new QLabel(this);lab1->resize(35,35);//重新设置大小lab1->move(lin1->x()-36,lin1->y());//设置坐标lab1->setPixmap(QPixmap("D:\\icon\\icon\\zhanghao.png"));//设置图标lab1->setScaledContents(true);//密码小图标lab2 = new QLabel(this);lab2->resize(35,35);//重新设置大小lab2->move(lin2->x()-36,lin2->y());//设置坐标lab2->setPixmap(QPixmap("D:\\icon\\icon\\mima.png"));//设置图标lab2->setScaledContents(true);//动图框lab3 = new QLabel(this);lab3->resize(500, 160);//重新设置大小movie = new QMovie("D:\\icon\\icon\\0019.gif");lab3->setMovie(movie);//将动图放入标签中movie->start();//让动图开始动//让标签内容自适应大小lab3->setScaledContents(true);//用户头像lab4 = new QLabel(this);lab4->resize(70,70);//重新设置大小lab4->move(230,120);//设置坐标lab4->setPixmap(QPixmap("D:\\icon\\icon\\1.jpg"));//设置图标lab4->setStyleSheet("border-radius:10;");lab4->setScaledContents(true);
}void Widget::my_slot()
{if(this->lin1->text() == this->lin2->text()){qDebug()<<"登陆成功";}else{qDebug()<<"登陆失败";}
}Widget::~Widget()
{delete ui;
}

效果展示


http://www.mrgr.cn/news/21201.html

相关文章:

  • 火狐浏览器重置密码后收藏的标签密码等数据被清除
  • 【STM32】CAN总线基础入门
  • 用户认证中的有状态和无状态
  • 【JAVA入门】Day34 - Stream流
  • 监理工程师职业资格考试
  • 黑马点评9——附近商户-GEO数据结构
  • Servlet-学习笔记-下
  • 理解C++全局对象析构顺序与 IPC 资源管理:避免 coredump 的实践
  • windows C++ 并行编程-使用 加速器 对象(下)
  • 硬件-经典开机电路
  • 期货赫兹量化-种群优化算法:进化策略,(μ,λ)-ES 和 (μ+λ)-ES
  • 【数学建模】2024数学建模国赛B题(word论文+matlab):生产过程中的决策问题
  • 【操作系统】进程同步之共享内存
  • MySQL面试总结
  • 高等代数精解【9】
  • MySQL学习--加强
  • 【Python报错已解决】`AttributeError: move_to requires a WebElement`
  • 同时播放多个视频
  • 5-7千元性价比最高的家用4K投影:大眼橙X30Ultra和当贝X5SPro对比
  • 代码随想录算法训练营第十九天| 回溯理论、77. 组合、216. 组合总和Ⅲ、17. 电话号码的字母组合