030-第三代软件开发-密码输入框

news/2024/11/14 12:00:25/
头图

第三代软件开发-密码输入框

文章目录

  • 第三代软件开发-密码输入框
    • 项目介绍
    • 密码输入框
    • 总结一下

关键字: QtQmlechoModeTextInputImage

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

密码输入框

为什么不是一个普通的密码输入框,而是一个密码输入框呢,因为密码可以当普通输入框使用,普通输入框不能当密码框用呀,反正原理都差不多,这里咱们就直接搞一个密码输入框,一个正常输入框就是下图的样子

但是如果我把这个放到界面,我下个月的工资估计都领不到,所以还得和美工小姐姐沟通一下,整个下图的样子

image-20230729113041023

这样是不是就可以了呢,其实这个在普通的输入框是没有的,需要我们自己组合一下,这里就直接上代码:

Rectangle
{width: 590height: 80color:"#00FFFFFF"border.width:1border.color:"#666666"radius:8Rectangle{width: parent.heightheight: parent.heightcolor:"#00FFFFFF"Image {width: 36height: 45anchors.centerIn: parentsource: "qrc:/Login/T_Resource/T_Image/Login/password.png"}}TextInput{id:input_UserPasswordanchors.left: parent.leftanchors.leftMargin: parent.heightanchors.right: parent.rightanchors.rightMargin: 5anchors.top: parent.topanchors.bottom: parent.bottomverticalAlignment: TextInput.AlignVCenterleftPadding: 10echoMode: TextInput.Passwordclip: truefont.pixelSize: 33font.family: "Source Han Sans CN"color: "#FFFFFF"anchors.fill: parent}
}

这段代码是一个用于创建矩形控件的QML代码。它包含一个带有密码输入功能的自定义登录框。

首先,外部的Rectangle定义了一个矩形控件,其宽度为590,高度为80,背景颜色为透明(“#00FFFFFF”),边框宽度为1,边框颜色为灰色(“#666666”),圆角半径为8。

在这个矩形内部,又定义了一个子矩形Rectangle。该子矩形的宽度和高度都被设置为父矩形的高度,背景颜色也是透明。这个子矩形是用来放置一个图像的,在图像的上方居中显示了一个密码图标。

图像由一个Image组件表示,其宽度为36,高度为45,通过anchors.centerIn属性实现在父矩形内水平和垂直居中显示。图像的来源是一个资源文件(qrc)路径,具体路径为:“qrc:/Login/T_Resource/T_Image/Login/password.png”。

接下来的TextInput定义了一个文本输入框,其id为"input_UserPassword"。这个文本输入框的左边界与父矩形的左边界对齐,且距离父矩形的左边缘的距离为父矩形的高度,右边界也与父矩形的右边界对齐,且距离父矩形的右边缘的距离为5。顶部和底部边界与父矩形对齐。

该文本输入框垂直居中显示,左边内边距为10个像素,密码输入时显示圆点,设置了clip属性以限制文本内容的显示范围。

文本的字体大小为33像素,字体家族为"Source Han Sans CN",文本颜色为白色(“#FFFFFF”)。anchors.fill属性将文本输入框填充满父矩形。

image-20230729113315345

还是直接上代码:

Rectangle
{width: 590height: 80color:"#00FFFFFF"border.width:1border.color:"#666666"radius:8Rectangle{width: parent.heightheight: parent.heightcolor:"#00FFFFFF"Image {width: 37height: 42anchors.centerIn: parentsource: "qrc:/Login/T_Resource/T_Image/Login/user.png}}TextInput{id:input_UserNameanchors.left: parent.leftanchors.leftMargin: parent.heightanchors.right: parent.rightanchors.rightMargin: 5anchors.top: parent.topanchors.bottom: parent.bottomverticalAlignment: TextInput.AlignVCenterleftPadding: 10clip: truefont.pixelSize: 33font.family: "Source Han Sans CN"color: "#FFFFFF"onTextChanged: UserManagement.currentUserName = text}
}

这段代码是创建一个矩形控件的QML代码,用于实现一个包含用户名输入功能的自定义登录框。

外层的Rectangle定义了一个矩形控件,宽度为590,高度为80,背景颜色为透明(“#00FFFFFF”),边框宽度为1,边框颜色为灰色(“#666666”),圆角半径为8。

在这个矩形内部,又定义了一个子矩形Rectangle。该子矩形的宽度和高度都被设置为父矩形的高度,背景颜色也是透明。这个子矩形用于放置一个图像,在图像的上方居中显示了一个用户图标。

图像由一个Image组件表示,宽度为37,高度为42,通过anchors.centerIn属性实现在父矩形内水平和垂直居中显示。图像的来源是一个资源文件(qrc)路径,具体路径为:“qrc:/Login/T_Resource/T_Image/Login/user.png”。

接下来的TextInput定义了一个文本输入框,其id为"input_UserName"。这个文本输入框的左边界与父矩形的左边界对齐,且距离父矩形的左边缘的距离为父矩形的高度,右边界也与父矩形的右边界对齐,且距离父矩形的右边缘的距离为5。顶部和底部边界与父矩形对齐。

该文本输入框垂直居中显示,左边内边距为10个像素,设置了clip属性以限制文本内容的显示范围。

文本的字体大小为33像素,字体家族为"Source Han Sans CN",文本颜色为白色(“#FFFFFF”)。

当文本输入框的内容发生变化时,绑定的onTextChanged事件会触发,并将输入的文本赋值给UserManagement.currentUserName变量。

大家有找区别所在了吗?echoMode: TextInput.Password

再分享一个其他的样式:

image-20230729113732447

这个是不是更好实现,就把我第二个连的图标换成文字就可以了。代码如下:

Rectangle
{width: 313height: 37radius: 4color: "transparent"border.color: "#666666"border.width: 1Text {id:text_UserPassword_1anchors.left: parent.leftanchors.leftMargin: 15anchors.verticalCenter: parent.verticalCecolor: "#FFFFFF"font.pixelSize: 15font.family: "Source Han Sans CN"text: qsTr("原密码:")}TextInput{id:input_UserPassword_1anchors.left: parent.leftanchors.leftMargin: text_UserPassword_1.wanchors.right: parent.rightanchors.rightMargin: 5anchors.top: parent.topanchors.bottom: parent.bottomverticalAlignment: TextInput.AlignVCenterleftPadding: 10echoMode: TextInput.Passwordclip: truefont.pixelSize: 15font.family: "Source Han Sans CN"color: "#FFFFFF"anchors.fill: parent}
}

总结一下

其实项目中那些看是高大上的控件,不过都是一些基础控件的组合,不是有有句话吗,万物皆可Painter


博客签名2021

http://www.ppmy.cn/news/1174006.html

相关文章

这是什么牛马机器视觉公司

这是什么牛马机器视觉公司,签订培训协议服务期,培训完三年内跑路直接赔两万。 我看到很多外包公司签订此类合同,当然也有培训机构也会玩此种协议。 对于我这种职场老手,我应该给大家分析下: 我们先看下什么是服务期…

经验风险最小化与结构风险最小化:优化机器学习模型的两种方法

随着大数据时代的到来,机器学习在各个领域中的应用越来越广泛。然而,在构建机器学习模型时,我们面临着两个主要的挑战:经验风险最小化和结构风险最小化。本文将深入探讨这两种方法,并分析它们在优化机器学习模型中的作…

docker更新容器映射端口

一个容器已经暴露了一个端口被外界使用,但是这个端口被公司不允许使用,需要修改为其他的端口,怎么办? 1、删除原容器,重启新容器 删除已启动容器,从镜像重启新容器。2、修改原容器配置文件 3、生成镜像&…

Day 1 Vue 页面框架

现在前端框架越来越像后端了,特别是TypeScript这样的语言出现后,开发前端的体验跟后端渐渐接近了。当然,作为一个后端,直接上手前端,还是有很多坑要填的。 本次开发,前端页面框架直接选择Vue。原因很简单&…

YOLOv7改进:新颖的上下文解耦头TSCODE,即插即用,各个数据集下实现暴力涨点

💡💡💡本文属于原创独家改进:上下文解耦头TSCODE,进行深、浅层的特征融合,最后再分别输入到头部进行相应的解码输出,实现暴力暴力涨点 上下文解耦头TSCODE| 亲测在多个数据集实现暴力涨点,对遮挡场景、小目标场景提升也明显; 收录: YOLOv7高阶自研专栏介绍: …

筹备三年,自动驾驶L3标准将至,智驾产业链的关键一跃

‍作者|张祥威 编辑|德新 多位知情人士告诉HiEV,智能网联汽车准入试点通知,乐观预计将在一个月内发布。试点的推动,意味着国家层面的自动驾驶L3标准随之到来。 「L3标准内容大部分与主机厂相关,由工信部牵头,找了几家…

Docker网络与资源管理

这里写目录标题 Docker网络与资源管理一.Docker网络1.Docker 网络实现原理2.Docker 的网络模式1)host模式2)container模式3)none模式4)bridge模式5)自定义网络 二.资源控制1.CPU 资源控制2.对内存使用的限制3.对磁盘IO…

QML QTP0001 not set 警告

使用QML的时候发现有这个警告。查阅资料之后发现解决办法。 大概的意思是说现在:/qt/qml/ 这个前缀是QML模块资源文件的前缀,而之前是:/ 这是从QT6.5开始的,旧的前缀被标记为废弃的。文档还说在使用qt_add_qml_module()不指定RESOURCE_PREFIX是新版的前…