坐牢第三十六天(QT)

news2024/9/25 23:17:33

自定义QQ界面

wedget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug> //qt中信息调试类
#include <QIcon> //图标类
#include <QPushButton>//按钮类
#include <QLabel> //标签类
#include <QMovie> //动图类
#include <QLineEdit> //行编辑器类
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
signals:
    void My_signal(); //信号函数的定义
public slots:
    void My_slot();
private:
    Ui::Widget *ui;
     //2.给界面上半部分加上标签放上动图
    QLabel *lab_jm_1;//创建标签
    QMovie*move_jm_1;//创建一个movie对象
     //3.给界面下半部分加上标签放入图片
    QLabel *lab_jm_3;
    //4,给界面中间整个头像
    QLabel *lab_jm_2;
    //5.左上角qq图标
     QLabel *lab_jm_4;
     QLabel *lab_jm_5;
     //1.账号标签
     QLabel *lab_pd;
     //2.密码标签
     QLabel *lab_id;
      //3.账号行编辑器
     QLineEdit *edit_id;
     //4.账号行编辑器
     QLineEdit *edit_pd;
     //1.登录按钮
     QPushButton *btn_login;
     //结果标签
     QLabel *lab_result;
};
#endif // WIDGET_H

wedger.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug> //qt中信息调试类
#include <QIcon> //图标类
#include <QPushButton>//按钮类
#include <QLabel> //标签类
#include <QMovie> //动图类
#include <QLineEdit> //行编辑器类
#include <QCheckBox> //复选框类
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    /**************************界面整体样式******************************/
    //1.设置界面
    this->setFixedSize(600,500);//设置固定大小
    this->setWindowTitle("QQ 复刻版");
    this->setWindowIcon(QIcon("D:\\linux_t\\icon\\qqqingliao"));//设置窗体图标
    this->setWindowOpacity(0.9);//设置窗口透明度
    //this->setWindowFlag(Qt::FramelessWindowHint);//设置窗口纯净

    //2.给界面上半部分加上标签放上动图
    lab_jm_1 =new QLabel(this);//创建标签
    lab_jm_1->move(0,0);
    lab_jm_1->resize(600,175);//设置标签大小
    move_jm_1 =new QMovie("D:\\linux_t\\icon\\fangao");//创建一个movie对象
    lab_jm_1->setMovie(move_jm_1);//将动图放入标签中
    move_jm_1->start();//让动图动起来
    lab_jm_1->setScaledContents(true);//让动图自适应大小
    lab_jm_1->setParent(this);

    //3.给界面下半部分加上标签放入图片
    lab_jm_3=new QLabel(this);//创建标签
    lab_jm_3->move(0,lab_jm_1->height());
    lab_jm_3->resize(600,325);//设置标签大小
    lab_jm_3->setPixmap(QPixmap("D:\\linux_t\\icon\\xaingrikui"));
    lab_jm_3->setScaledContents(true);//保持图片清晰度和完整性
    lab_jm_3->setWindowOpacity(0.1);//设置透明度

    //4,给界面中间整个头像
    lab_jm_2 =new QLabel(this);//创建标签
    lab_jm_2->resize(70,70);//设置大小
    lab_jm_2->move(lab_jm_1->width()/2-lab_jm_2->width()/2,lab_jm_1->height()-lab_jm_2->height()/2);

    //设置头像位置
    lab_jm_2->setPixmap(QPixmap("D:\\linux_t\\icon\\fangaotouxiang"));//放入静态图
    lab_jm_2->setScaledContents(true);//保持图片清晰度和完整性

    //5.左上角qq图标
    lab_jm_4 =new QLabel(this);//创建标签
    lab_jm_4->resize(40,50);//设置大小
    lab_jm_4->move(30,10);//设置头像位置
    lab_jm_4->setPixmap(QPixmap("D:\\linux_t\\icon\\123"));//放入静态图
    lab_jm_4->setScaledContents(true);//保持图片清晰度和完整性
    lab_jm_5 =new QLabel(this);//创建标签
    lab_jm_5->resize(50,50);//设置大小
    lab_jm_5->move(lab_jm_4->x()+lab_jm_4->width(),lab_jm_4->y());
    lab_jm_5->setPixmap(QPixmap("D:\\linux_t\\icon\\456"));//放入静态图
    lab_jm_5->setScaledContents(true);//保持图片清晰度和完整性

    /********************************账号密码标签和行编辑器****************************/
    //1.账号标签
    lab_id=new QLabel("账号",this);//有参构造一个账号标签
    lab_id->resize(38,30);//设置大小
    lab_id->move(120,250);//设置位置
    lab_id->setPixmap(QPixmap("D:\\linux_t\\icon\\qq"));//加上图片
    lab_id->setScaledContents(true);//保持图片清晰度和完整性

    //2.密码标签
    lab_pd=new QLabel("账号",this);//有参构造一个密码标签
    lab_pd->resize(38,30);//设置大小
    lab_pd->move(120,lab_id->y()+lab_id->height()+5);//设置位置
    lab_pd->setPixmap(QPixmap("D:\\linux_t\\icon\\suo"));//加上图片
    lab_pd->setScaledContents(true);//保持图片清晰度和完整性

    //3.账号行编辑器
    edit_id =new QLineEdit("账号",this);
    edit_id->resize(200,30); //设置大小
    edit_id->move(lab_id->x()+lab_id->width()+20,lab_id->y());
    edit_id->clear();
    edit_id->setPlaceholderText("账号");

    //4.账号行编辑器
    edit_pd =new QLineEdit("账号",this);
    edit_pd->resize(200,30); //设置大小
    edit_pd->move(lab_pd->x()+lab_pd->width()+20,lab_pd->y());
    edit_pd->clear();
    edit_pd->setPlaceholderText("密码");
    edit_pd->setEchoMode(QLineEdit::Password); //设置回显模式

    /********************************登录取消按钮****************************/
    //1.登录按钮
    btn_login =new QPushButton("登录",this);
    btn_login->resize(300,50);
    btn_login->move(lab_pd->x()+30,lab_pd->y()+lab_pd->height()+50);
    btn_login->setIcon(QIcon("D:\\linux_t\\icon\\denglu")); //设置按钮图标
    //btn_login->setStyleSheet("background-color: skyblue; border: 1px solid black; color: black;");  //设置样式表

    //2.给登录按钮链接
    connect(btn_login,&QPushButton::clicked,this,&Widget::My_slot);

    /********************************结果标签****************************/
    lab_result =new QLabel(this);//有参构造一个结果标签
    lab_result->resize(100,40);
    lab_result->move(btn_login->x()+100,btn_login->y()+btn_login->height());

    /********************************复选框标签****************************/
    //1.自动登录
    QCheckBox *box1=new QCheckBox("自动登录",this);
    box1->resize(100,40);
    box1->move(btn_login->x(),btn_login->y()-50);

    //2.记住密码
    QCheckBox *box2=new QCheckBox("记住密码",this);
    box2->resize(100,40);
    box2->move(box1->x()+box1->width()+4,box1->y());

    //3.找回密码按钮
   QPushButton*  btn_id =new QPushButton("找回密码",this);
    btn_id->resize(100,40);
    btn_id->move(box2->x()+box2->width()+4,box2->y());
    btn_id->setStyleSheet("background-color: rgba(0, 0, 0, 0);");

    //4.注册账号按钮
   QPushButton*  btn_pd =new QPushButton("注册账号",this);
    btn_pd->resize(100,40);
    btn_pd->move(lab_jm_4->x(),450);
    btn_pd->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
}

Widget::~Widget()
{
    delete ui;
}
void Widget:: My_slot()
{
    if(edit_id->text()==edit_pd->text())
    {

        //this-> close();
        lab_result->setStyleSheet(" color: bleak;");
        lab_result->setText("登录成功");
    }
    else
    {
        edit_pd->clear();
        lab_result->setStyleSheet(" color: rgb(255, 0,0);");
        lab_result->setText("登录失败");
    }
}

结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】—— vector 的模拟实现

【C】—— vector 的模拟实现 0 前言1 vector 的成员变量1.1 stl 库中的 vector 成员变量1.2 模拟实现 vector 成员变量 2 迭代器3 size、capacity、empty4 opreator[ ]5 reserve5.1 初版 reserve5.2 _finish 的处理5.3 深拷贝5.4 终版 6 push_back 与 pop_back7 打印函数7.1 初…

打破界限,自闭症寄宿学校带给孩子的改变

在社会的广阔画卷中&#xff0c;有一群特别的孩子&#xff0c;他们以独特的视角感知世界&#xff0c;以非凡的方式表达情感&#xff0c;他们就是自闭症儿童。自闭症&#xff0c;这个听起来略带神秘色彩的词汇&#xff0c;实则承载着无数家庭的期盼与挑战。在这片充满爱的土地上…

【北京迅为】《STM32MP157开发板使用手册》-第十六章 Buildroot制作根文件系统

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

丰巢“闯关”港交所上市

社区中随处可见的智能快递柜&#xff0c;即将捧出一个IPO。 近日&#xff0c;丰巢控股有限公司&#xff08;下称“丰巢控股”或“丰巢”&#xff09;正式向港交所递交了招股书&#xff0c;华泰国际担任其独家保荐人。这将是继顺丰控股、顺丰房托、嘉里物流、顺丰同城之后&…

【Qt笔记】QGroupBox控件详解

目录 引言 一、基本属性 二、常用方法 2.1 构造函数 2.2 设置标题 2.3 设置复选框模式 2.4 是否被选中 2.5 设置对齐方式 2.6 设置扁平化样式 三、信号与槽机制 四、样式定制 五、应用示例 5.1 代码 5.2 代码解析 5.3 实现效果 结语 引言 QGroupBox 是 Qt…

检查iOS多语系文件内容检查iOS多语系文件内容

在iOS中&#xff0c;检查多语言文件&#xff08;如 .strings 文件&#xff09;内容的命令通常使用 plutil 工具。你可以通过终端执行以下命令来检查 .strings 文件的格式和内容&#xff1a; plutil -lint path/to/your/Localizable.strings 这个命令会验证指定的 .strings 文…

C语言13--结构体

结构体基本概念 C语言提供了众多的基本类型&#xff0c;但现实生活中的对象一般都不是单纯的整型、浮点型或字符串&#xff0c;而是这些基本类型的综合体。比如一个学生&#xff0c;典型地应该拥有学号&#xff08;整型&#xff09;、姓名&#xff08;字符串&#xff09;、分数…

已配置好的Linux CentOS7虚拟机转换为可视化界面问题

一、发现问题 学习过程中发现可视化界面比较有意思&#xff0c;就想尝试搞一下看看&#xff0c;于是去网站上搜索&#xff0c;看到的一些是在新建虚拟机的时候进行设置的&#xff0c;我尝试跟着步骤去搞&#xff0c;发现其中最关键的一步&#xff0c;软件选择中&#xff0c;没有…

【北京迅为】《STM32MP157开发板使用手册》- 第十五章 制作最小linux系统

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

TikTok内容电商:短视频与直播带货如何重塑消费者购物决策

数字化时代&#xff0c;内容电商已经成为一种重要的商业模式。而TikTok作为全球领先的短视频平台&#xff0c;其内容电商模式正慢慢改变用户的消费习惯。TikTok Shop作为TikTok平台上的电商板块&#xff0c;也凭借其独特的短视频和直播带货模式&#xff0c;影响着消费者的购物决…

百度MEG数据开发治理平台-TDS

导读 百度MEG的上一代大数据产品存在平台分散、质量不均和易用性差等问题&#xff0c;导致开发效率低下、学习成本高&#xff0c;业务需求响应迟缓。为了解决这些问题&#xff0c;百度MEG内部开发了图灵3.0生态系统。图灵3.0覆盖了数据全生命周期&#xff0c;包括Turing Data …

AI在医学领域:HMARL首个多器官诊断AI框架

多器官疾病因其对多个器官系统的同时影响而带来了显著的挑战&#xff0c;这需要复杂和适应性的治疗策略。尽管在人工智能驱动的医疗决策支持系统方面取得了最新进展&#xff0c;但现有的解决方案通常限于单个器官系统。它们往往忽视了器官系统之间复杂的相互依赖性&#xff0c;…

搜维尔科技:SenseGlove触觉反馈数据手套为人形机器人遥操作提供精确的控制和交互方案

SenseGlove触觉反馈数据手套 使用市场上唯一一款结合力反馈、振动触觉反馈和运动捕捉以及紧凑无线设计的触觉手套来收集数据。 遥操作机器人 远程机器人向人类提供触觉反馈&#xff0c;提供更强的真实感和更高的性能&#xff0c;以及安全性和控制力。远程机器人的 SenseGlov…

适用于BLE室内定位系统的自适应路径损耗模型

自适应路径损耗模型(ADAM):提升BLE室内定位精度的创新方法 室内定位系统(IPS)在物联网、智慧城市等领域中扮演着至关重要的角色。然而,由于室内环境的复杂性(如信号多径效应、障碍物等),传统的定位方法往往面临精度不足的问题。本文介绍了一种新颖的模型——ADAM(Ad…

【毕设项目五】基于SpringBoot+VUE的公共卫生教育与宣传系统

基于SpringBootVUE的公共卫生教育与宣传系统 项目介绍 系统有两种角色&#xff1a;管理员和普通用户。 &#xff08;1&#xff09;健康教育资源 &#xff08;2&#xff09;活动管理 &#xff08;3&#xff09;反馈与建议 &#xff08;4&#xff09;用户管理 管理员实现功…

快速上手指南:在Windows系统中下载Ollama,一键启动大模型体验!

1. 下载ollama 官网下载安装&#xff1a; ollama.com 2. 拉取大模型 llama 3.1 终端中输入 ollama pull llama3.1&#xff0c;等待安装 3. 运行 llama3.1 ollama run llama3.1接下来就可以和模型对话了 退出 /bye运行 /? 查看更多聊天中命令 其他 ollama github&#x…

150Kg载重履带式无人车底盘技术详解

150Kg载重履带式无人车底盘&#xff0c;作为现代智能移动平台的重要组成部分&#xff0c;专为复杂地形作业设计&#xff0c;如野外勘探、灾难救援、农业自动化及军事侦察等领域。该底盘集成了先进的动力技术、稳定的履带行走系统、精准的遥控与控制系统以及模块化的设计理念&am…

[数据集][目标检测]河道垃圾检测数据集VOC+YOLO格式2274张8类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2274 标注数量(xml文件个数)&#xff1a;2274 标注数量(txt文件个数)&#xff1a;2274 标注…

【安全知识】访问控制模型DAC、MAC、RBAC、ABAC有什么区别?

不同的公司或软件提供商&#xff0c;设计了无数种控制用户访问功能或资源的方法。但无论哪种设计&#xff0c;都可归到四种经典权限模型里——自主访问控制(DAC, Discretionary Access Control)、强制访问控制(MAC, Mandatory Access Control)、基于角色访问控制(RBAC, Role-ba…

SprinBoot+Vue高校就业管理系统设计与实现的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…