QT仿QQ聊天项目,第二节,美化登录界面

一,控件起名和设置整体样式

目录

一,控件起名和设置整体样式

二,设置局部控件样式

三,设置gif动态背景

四,设置账号密码框样式

五,头像图片设置


给控件起的名字:

      关闭按钮: btn_close

      缩小按钮:btn_reduce

      登录按钮:btn_login

      设置按钮:btn_set

      注册按钮:btn_register

      找回密码按钮:btn_findpwd

      二维码按钮:btn_erweima

      账号/用户名输入框: cb_username (类型为QComboBox)

     密码输入框:le_password(类型为QLineEdit)

    

以下代码写在最外层的窗口QWidget,起到全局样式设置的作用

QPushButton#btn_close:hover   //关闭按钮
{background-color: rgb(255,84,57);
}QPushButton#btn_reduce:hover   //缩小按钮
{background-color: rgb(190,190,190);
}QPushButton#btn_set:hover   //设置按钮
{background-color: rgb(190,190,190);
}QPushButton#btn_login         //登录按钮
{background-color: rgb(14,191,252);border-radius:5px;font: 75 12pt "Arial";color: rgb(255, 255, 255);
}QPushButton#btn_login:hover    //登录按钮悬停效果
{background-color: rgb(36, 162, 208);
}QComboBox,QLineEdit
{border:none;border-bottom:1px solid rgb(229,229,229);
}QComboBox:hover,QLineEdit:hover
{border-bottom:1px solid rgb(193,193,193);
}QComboBox:focus,QLineEdit:focus
{border-bottom:1px solid rgb(18,183,245);
}QComboBox::drop-down
{min-width:30px;border-image: url(:/QQ_login_image/menu.png);
}QPushButton#btn_register   //注册按钮
{border:none;color: rgb(191,191,191);
}
QPushButton#btn_register:hover
{color: rgb(106, 106, 106);
}QPushButton#btn_erweima:hover   //二维码按钮悬停效果
{border-image: url(:/QQ_login_image/erweima2.png);
}QPushButton#btn_findpwd   //找回密码按钮
{border:none;color: rgb(191,191,191);
}
QPushButton#btn_findpwd:hover
{color: rgb(106, 106, 106);
}

二,设置局部控件样式


//关闭按钮设置关闭图片border-image: url(:/QQ_Image_touming/close.png);//缩小按钮设置缩小图片
border-image: url(:/QQ_Image_touming/touming_min.png);//设置按钮设置设置图片
border-image: url(:/QQ_login_image/sheze.png);//二维码按钮设置二维码图片
border-image: url(:/QQ_login_image/erweima1.png);

如何设置的:

选中想要设置样式的控件:

点击鼠标右键->选择改变样式表,  就会弹出样式设置窗口:

将代码设置到此处即可

三,设置gif动态背景

我们发现这个登录界面是有动效的,那如何实现的呢?其实这个动效的控件是一个QLabel,在这个QLabel中我们设置了一个gif动图,让这个gif动图动起来以达到这个效果。

代码:

    //使gif图片铺满labelQPixmap *pixmap = new QPixmap(":/gf60.gif");pixmap->scaled(ui->label->size(), Qt::KeepAspectRatio);ui->label->setScaledContents(true);ui->label->setPixmap(*pixmap);//给label设置动画效果;QMovie * movie = new QMovie;movie->setFileName(":/gf60.gif");movie->start();//播放ui->label->setMovie(movie);

四,设置账号密码框样式

我们发现这个账号密码框,既有文字,也有图片,所以要写代码来实现:

 //账号提示ui->cb_username->lineEdit()->setPlaceholderText("QQ号码/手机/邮箱");//对lineEdit左侧嵌入图片QAction *action = new QAction(this);action->setIcon(QIcon(":/QQ_login_image/pwd.png"));ui->le_password->addAction(action,QLineEdit::LeadingPosition);//为comboBox的lineEdit嵌入图片QAction *action1 = new QAction(this);action1->setIcon(QIcon(":/QQ_login_image/zhanghao.png"));ui->cb_username->lineEdit()->addAction(action1,QLineEdit::LeadingPosition);//隐藏密码输入ui->le_password->setEchoMode(QLineEdit::Password);

五,头像图片设置

头像是怎么设置的呢,这里有一个很简单的方法,运用qss样式设置图片。

其实头像也是一个QLabel控件,所以我们可以设置样式来将图片设置上去。

为什么头像是圆形的?是因为设置图片的同时,设置了圆角样式

border-radius:43px;  //圆角
border-image: url(:/dadaguai.png);  //头像

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松部署自己的AI聊天助手LocalGPT并实现无公网IP远程交互

文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问,由于localGPT只能通过本地局域网IP地址端口号的形式访问,实现远程访问…

N-154基于springboot酒店预订管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:AdminLTEBootstrapLayUIHTMLjQuery 服务端技术:springbootmybatis-plusthymeleaf 本项目分前台和后台…

Banana Pi BPI-R3路由器开发板运行 OrayOS物联网系统

近日,Banana PI开发板宣布与贝锐达成战略合作,贝锐OrayOS现已成功适配Banana PI的BPI-R3型号,并计划进一步扩展硬件支持,包括目前Banana PI热销的BPI-R4、BPI-R3 Mini等更多型号。这一合作为用户提供了更广泛的开发板选择&#xf…

范式转移:从协程、回调到异步

本文使用 CC BY-NC-ND 4.0 许可。 原文:英文版 | 中文版 协程、回调和异步每一个单独拎出来讲都不难,但它们之间的关系却非常烧脑,迄今为止我还没见过哪篇文章能讲清楚的,所以在这里我尝试用最简单的思路讲解清楚:如…

Pytorch学习--神经网络--非线性激活

一、用法 torch.nn.ReLU 图像处理中的应用:在图像处理任务中,ReLU 激活函数能够增强特征提取的能力,使网络更好地捕捉图像的细节和边缘。这是因为 ReLU 对大部分负数响应为零,能在一定程度上减少网络计算量,并对特征…

Objective-C 音频爬虫:实时接收数据的 didReceiveData_ 方法

在互联网技术领域,数据的获取和处理是至关重要的。尤其是对于音频内容的获取,实时性和效率是衡量一个爬虫性能的重要指标。本文将深入探讨在Objective-C中实现音频爬虫时,如何高效地使用didReceiveData:方法来实时接收数据,并通过…

企业自建邮件系统选U-Mail ,功能强大、安全稳定

在现代企业运营中,电子邮件扮演着至关重要的角色,随着企业规模的增长和业务的多样化,传统的租用第三方企业邮箱服务逐渐显现出其局限性。例如,存储空间受限、数据安全风险、缺乏灵活的管理和备份功能,以及无法与其他企…

C++在实际项目中的应用第二节:C++与区块链

第五章:C在实际项目中的应用 第二课:C与区块链 区块链技术因其去中心化、不可篡改和透明性而受到广泛关注。在这门课程中,我们将深入探讨区块链的基本原理、智能合约的开发以及实际应用的案例分析,重点使用 C 作为实现语言&…

雷池社区版中升级雷池遇到问题

关于升级后兼容问题 版本差距过大会可能会发生升级后数据不兼容导致服务器无法起来 跨多个版本(超过1个大版本号)升级做好数据备份,遇到升级失败可尝试重新安装解决 升级提示目录不对 在错误的目录下执行(比如 safeline 的子目…

TCP/IP Attack Lab

网络拓扑: Task 1: SYN Flooding Attack 收到攻击之前,在Victim主机查看网络连接的状态: 在攻击之前使用User1主机(10.9.0.6)访问Victim(10.9.0.5)主机的 Telnet服务: Task 1.1: Launching the Attack Using Python 在Atacker上建立文件attack-1.py…

Jvm中的堆和栈

JVM中的堆和栈分别存放不同的数据类型和内容。 ‌栈(Stack)‌: 存储基本数据类型(如int, char, boolean等)和对象的引用。存储局部变量、方法调用、程序运行状态、方法返回值等。每个线程都有一个独立的线程栈&#…

我为什么投身于青少年AI编程?——打造生态圈(三)

第五部分 青少年AI编程生态圈 一、生态圈 主要涵盖家庭、社区/中小学、高校高职、主管部门。 1、家庭 我们与社区/中小学一道打造让家长满意的模式。 教得好: 费用少: 家门口: 2、社区/中小学 社区党群服务中心和中小学都有大面积科普…

Ubuntu18.04安装vscode1.94.2失败安装vscode1.84.2

系统环境:Ubuntu18.04.6 LTS 自己先去vscode官网下载好最新版本的vscode1.94.2(不下也行,反正最新版也用不了,哈哈) 网址:Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code ed…

.NET 8 中的 Mini WebApi

介绍 .NET 8 中的极简 API 隆重登场,重新定义了我们构建 Web 服务的方式。如果您想知道极简 API 的工作原理以及它们如何简化您的开发流程,让我们通过一些引人入胜的示例来深入了解一下。 .NET 极简主义的诞生 想想我们曾经不得不为一个简单的 Web 服务…

鸿蒙开发融云demo发送图片消息

鸿蒙开发融云demo发送图片消息 融云鸿蒙版是不带UI的,得自己一步步搭建。 这次讲如何发送图片消息,选择图片,显示图片消息。 还是有点难度的,好好看,好好学。 一、思路: 选择图片用:photoVie…

多条音频按顺序合成 代码实现

根据之前文章后续chatTTS文本转语音 实践相关记录-CSDN博客 直接合成多条音频,顺序会乱,最终合成的效果不显著,改进了合成音频的代码 直接获取文件夹中的所有 WAV 文件,并按文件名排序来合并它们。 wav_files.sort() 默认是按字母…

CMake 生成器表达式介绍

【写在前面】 生成器表达式在构建系统生成期间进行评估&#xff0c;以生成特定于每个构建配置的信息。它们的形式为 $<...>。例如&#xff1a; target_include_directories(tgt PRIVATE /opt/include/$<CXX_COMPILER_ID>) 这将扩展为 “/opt/include/GNU”、“/opt…

Java Lock Semaphore 总结

前言 相关系列 《Java & Lock & 目录》&#xff08;持续更新&#xff09;《Java & Lock & Semaphore & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Java & Lock & Semaphore & 总结》&#xff08;学习总结/最新最准…

1.机器人抓取与操作介绍-深蓝学院

介绍 操作任务 操作 • Insertion • Pushing and sliding • 其它操作任务 抓取 • 两指&#xff08;平行夹爪&#xff09;抓取 • 灵巧手抓取 7轴 Franka 对应人的手臂 6轴 UR构型去掉一个自由度 课程大纲 Robotic Manipulation 操作 • Robotic manipulation refers…

STK与MATLAB互联——仿真导航卫星与地面用户间距离和仰角参数

文章目录 构建GPS星座创建单个PRN的GPS卫星创建GPS星座&#xff0c;并为其添加发射机 北斗星座构建搭建低轨铱星星座构建一颗轨道高度为800km/1000km/1200km的低轨卫星构建一颗轨道高度为800km/1000km/1200km的低轨卫星建立地面站&#xff0c;可见性分析确定地面站坐标分析单颗…