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)。
相关推荐
开心码农1号5 小时前
Go 语言深度剖析:指针、unsafe.Pointer 与 uintptr 底层原理、区别与实战避坑
开发语言·后端·golang
charlie1145141915 小时前
现代Qt开发教程(新手篇)1.10——进程
开发语言·c++·qt·学习
l1t5 小时前
在aarch64机器上安装使用R语言的季节调整包
开发语言·r语言
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题】【Java基础篇】第23题:ConcurrentHashMap的底层原理是什么
java·开发语言·算法·哈希算法·散列表·hash
skywalk81635 小时前
中文编程语法方案对比分析
开发语言
eastyuxiao5 小时前
OpenClaw 全功能说明文档
开发语言·人工智能
solicitous5 小时前
JAVA系统复习(基础语法-类、接口)
java·开发语言
techdashen5 小时前
四个解析器引发的混乱:Cloudflare 如何用 Rust 统一全栈 Cron 解析
开发语言·rust·状态模式
likerhood5 小时前
单例模式详细讲解(java)
java·开发语言·单例模式
小短腿的代码世界6 小时前
Qt量化策略编辑器深度解析:从DSL解析到可视化编排的完整架构
qt·架构·编辑器