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

简介: 欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资

头图

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

[toc]

关键字: QtQmlechoModeTextInputImage

项目介绍

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

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

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

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

重要说明☝

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

密码输入框

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

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

image-20230729113041023

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

Rectangle
{
    width: 590
    height: 80
    color:"#00FFFFFF"
    border.width:1
    border.color:"#666666"
    radius:8
    Rectangle
    {
        width: parent.height
        height: parent.height
        color:"#00FFFFFF"
        Image {
            width: 36
            height: 45
            anchors.centerIn: parent
            source: "qrc:/Login/T_Resource/T_Image/Login/password.png"
        }
    }
    TextInput
    {
        id:input_UserPassword
        anchors.left: parent.left
        anchors.leftMargin: parent.height
        anchors.right: parent.right
        anchors.rightMargin: 5
        anchors.top: parent.top
        anchors.bottom: parent.bottom
        verticalAlignment: TextInput.AlignVCenter
        leftPadding: 10
        echoMode: TextInput.Password
        clip: true
        font.pixelSize: 33
        font.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: 590
    height: 80
    color:"#00FFFFFF"
    border.width:1
    border.color:"#666666"
    radius:8
    Rectangle
    {
        width: parent.height
        height: parent.height
        color:"#00FFFFFF"
        Image {
            width: 37
            height: 42
            anchors.centerIn: parent
            source: "qrc:/Login/T_Resource/T_Image/Login/user.png
        }
    }
    TextInput
    {
        id:input_UserName
        anchors.left: parent.left
        anchors.leftMargin: parent.height
        anchors.right: parent.right
        anchors.rightMargin: 5
        anchors.top: parent.top
        anchors.bottom: parent.bottom
        verticalAlignment: TextInput.AlignVCenter
        leftPadding: 10
        clip: true
        font.pixelSize: 33
        font.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: 313
    height: 37
    radius: 4
    color: "transparent"
    border.color: "#666666"
    border.width: 1
    Text {
        id:text_UserPassword_1
        anchors.left: parent.left
        anchors.leftMargin: 15
        anchors.verticalCenter: parent.verticalCe
        color: "#FFFFFF"
        font.pixelSize: 15
        font.family: "Source Han Sans CN"
        text: qsTr("原密码:")
    }
    TextInput
    {
        id:input_UserPassword_1
        anchors.left: parent.left
        anchors.leftMargin: text_UserPassword_1.w
        anchors.right: parent.right
        anchors.rightMargin: 5
        anchors.top: parent.top
        anchors.bottom: parent.bottom
        verticalAlignment: TextInput.AlignVCenter
        leftPadding: 10
        echoMode: TextInput.Password
        clip: true
        font.pixelSize: 15
        font.family: "Source Han Sans CN"
        color: "#FFFFFF"
        anchors.fill: parent
    }
}

总结一下

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


博客签名2021

相关文章
|
12月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
271 1
|
7月前
|
人工智能 JavaScript Java
如何在IDEA中借助深度思考模型 QwQ 提高编码效率?
通义灵码目前已经支持 QwQ-plus 模型,欢迎大家在【智能问答】里,选择切换模型,即可体验更小尺寸、更强性能的新模型!
232 10
|
机器学习/深度学习 自然语言处理 算法
【从零开始学习深度学习】49.Pytorch_NLP项目实战:文本情感分类---使用循环神经网络RNN
【从零开始学习深度学习】49.Pytorch_NLP项目实战:文本情感分类---使用循环神经网络RNN
|
SQL 运维 监控
SLS 数据加工全面升级,集成 SPL 语法
在系统开发、运维过程中,日志是最重要的信息之一,其最大的优点是简单直接。SLS 数据加工功能旨在解决非结构化的日志数据处理,当前全面升级,集成 SPL 语言、更强的数据处理性能、更优的使用成本。
18449 243
|
机器学习/深度学习 PyTorch 算法框架/工具
彻底告别微调噩梦:手把手教你击退灾难性遗忘,让模型记忆永不褪色的秘密武器!
【10月更文挑战第5天】深度学习中,模型微调虽能提升性能,但也常导致灾难性遗忘,即学习新任务时遗忘旧知识。本文介绍几种有效解决方案,重点讲解弹性权重巩固(EWC)方法,通过在损失函数中添加正则项来防止重要权重被更新,保护模型记忆。文中提供了基于PyTorch的代码示例,包括构建神经网络、计算Fisher信息矩阵和带EWC正则化的训练过程。此外,还介绍了其他缓解灾难性遗忘的方法,如LwF、在线记忆回放及多任务学习,以适应不同应用场景。
1289 8
|
Linux Apache 数据安全/隐私保护
kali向Apache上部署网页
kali向Apache上部署网页
275 5
|
Ubuntu Linux 网络安全
在Ubuntu上离线升级OpenSSH
本文介绍了在Ubuntu系统上离线升级OpenSSH的详细步骤,包括移除旧版本、解压新版本、编译安装、解决依赖问题、替换相关命令、重启SSHD服务以及验证升级结果。
2186 1
|
机器学习/深度学习 人工智能 算法
探索量子计算的未来:原理、应用与挑战
本文深入探讨了量子计算的基本原理、当前实际应用以及面临的技术和理论挑战,旨在为读者提供全面的技术性视角。
407 29
|
存储 Kubernetes 监控
深入浅出分布式事务:理论与实践
在数字化时代的浪潮中,分布式系统如同星辰大海般浩瀚而深邃。本文将带你航行于这片星辰大海,探索分布式事务的奥秘。我们将从事务的基本概念出发,逐步深入到分布式事务的核心机制,最后通过一个实战案例,让你亲自体验分布式事务的魅力。让我们一起揭开分布式事务的神秘面纱,领略其背后的科学与艺术。
182 1
|
Kubernetes API 数据中心
在K8S中,pause容器作用是什么?
在K8S中,pause容器作用是什么?