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

4. Qt对话框(2)

在上节中已经学习了对话框的确认和取消,本节内容继续接上节完成登录对话框实例并得到登录信息。

本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频]

1 实现登录对话框

1.1 功能需要

  1. 得到登录信息,需要完成窗口与窗口间的消息传递。消息传递方式有主要有如下三种方式,本节主要使用方法1:

1、调用函数获取
2、信号与槽传递参数
3、消息发送,sendEvent

  1. 登录对话框一般不需要有标题栏,可以通过如下方式取消对话框的标题栏:

在这里插入图片描述

  1. 改变对话框背景颜色

在这里插入图片描述

  1. 密码密文显示

1.2 具体实现

步骤1:同样在上节HelloWorld工程中,已经创建了logindialog对话框,在logindialog.ui中加上如下“用户名”和“登录密码”项。其中文字部分用Display Widgets - Label 控件,输入框用Input Widgets - Line Edit 控件,注意手动对齐或者使用布局对齐。界面如下:

在这里插入图片描述
注:为了便于理解和编写代码,可以在创建控件时,将需要操作的控件改名,这里我将用户名输入控件命名为userName,密码改名为passWord。

步骤2取消窗口的标题栏,使用 Qt::FramelessWindowHint参数 ,即在logindialog.cpp中,加上该参数,使窗口类型为无边框窗口。代码和结果见运行结果图。

在这里插入图片描述

在这里插入图片描述

运行结果如下,可以看到登录对话框没有边框。

在这里插入图片描述

步骤3:由于登录对话框背景颜色和主窗口背景颜色一样,因此可以通过改变背景颜色,使得结果更加明显。在logindialog.cpp中设置窗口的颜色参数。代码和结果见运行结果图。

在这里插入图片描述

在这里插入图片描述

运行结果如下,logindialog窗口的背景颜色改变为指定颜色。

在这里插入图片描述

步骤4:一般需要将密码密文显示,以保护用户账户安全性。可以在logindialog.ui文件中,选中密码输入控件,然后修改其echoMode属性值为password实现。

在这里插入图片描述

运行结果如下:

在这里插入图片描述

步骤5:当用户输入登录信息后,需要获取登录信息,并进行判断是否输入正确,如果正确,则登录成功,错误,则提示登录失败。

  • 首先在logindialog.h中声明获取登录信息的函数void getLoginMessage(QString &passwd); 并在logindialog.cpp文件中添加相关定义。

在这里插入图片描述

在这里插入图片描述

  • 在mainwindow.cpp中写登录窗口“确定”和“取消”按钮点击后的功能。
    在这里插入图片描述
  • 断点调试,看是否正确读取到用户登录信息。如下图所示,调试结果表明正确获取了用户登录信息(用户名:admin;密码:123456)。
    在这里插入图片描述
http://www.xdnf.cn/news/714547.html

相关文章:

  • [网页五子棋][匹配模块]用户管理器可能存在的问题以及解决办法(线程安全、多开问题)
  • Leetcode 2921. 价格递增的最大利润三元组 II
  • 知识课堂|sCMOS相机可编程快门模式解析
  • 2.2 在javaweb开发中常见后缀文件名的简单理解
  • 9.4 Q1|复旦大学CHARLS发文 | 老年人肌肉减少症和轻度认知障碍
  • Java 实现下载指定minio目录下的所有内容到本机
  • 深入解析注解框架实现原理:从源码到实战
  • 【下拉选项数据管理优化实践:从硬编码到高扩展性架构】
  • Jetson nx下realsense相机系统重启后找不到相机,需要重新插拔usb口问题解决办法
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.5 R语言解题
  • 云渲染农场行业需求,如何搭建,有什么用途?
  • CDN安全加速:HTTPS加密最佳配置方案
  • C# Costura.Fody 排除多个指定dll
  • T5和GPT哪个更强大
  • C语言的函数调用,允许参数缺省和乱序
  • 通配符(Wildcard)与正则表达式(Regular Expression)的关系及区别
  • Python中re模块结合正则表达式的应用
  • 企业文件乱、传输慢?用群晖 NAS 构建安全高效的共享系统
  • Codejock ToolkitPro 与 BCGControlBar Pro 深度对比
  • 太阳系运行模拟程序-html动画
  • 宝塔安装WordPress程序
  • Rust入门之并发编程基础(一)
  • 【无标题】C++23新特性:支持打印volatile指针
  • 字节开源BAGEL可文生图、图像理解、图像编辑
  • 秒杀/高并发解决方案+落地实现
  • 【Pandas】pandas DataFrame duplicated
  • docker运行centos提示Operation not permitted
  • 快速了解 GO之接口解耦
  • 涨薪技术|0到1学会性能测试第89课-性能测试设计
  • R语言基础| 数据基本管理与操作