4. Qt对话框(2)
在上节中已经学习了对话框的确认和取消,本节内容继续接上节完成登录对话框实例并得到登录信息。
本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频]
1 实现登录对话框
1.1 功能需要
- 得到登录信息,需要完成窗口与窗口间的消息传递。消息传递方式有主要有如下三种方式,本节主要使用方法1:
1、调用函数获取
2、信号与槽传递参数
3、消息发送,sendEvent
- 登录对话框一般不需要有标题栏,可以通过如下方式取消对话框的标题栏:
- 改变对话框背景颜色
- 密码密文显示
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)。
相关文章:

4. Qt对话框(2)
在上节中已经学习了对话框的确认和取消,本节内容继续接上节完成登录对话框实例并得到登录信息。 本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1 实现登录对话框 1.1 功能需要 得到登录信息,需要…...
2025-5-31-C++ 学习 字符串(终)
字符串 2025-5-31-C 学习 字符串(终)P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例 #2输入 #2输出 #2 说明/提示题解代码 P1597 语句解析题目背景题目描述输入格式输出格式输入…...

Android Studio 2022.2.1.20 汉化教程
查看Android Studio 版本 Android Studio Flamingo | 2022.2.1 Patch 2 下载:https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack----/versions/stable...
第17讲、odoo18可视化操作代码生成模块
1. 模块概述 代码框架生成模块是一个专为Odoo开发者设计的工具,旨在简化模块开发过程中的重复性工作。该模块允许开发者通过定义模型名称和字段,自动生成相应的Python代码、XML视图和CSV权限配置文件,从而大幅提高开发效率。通过这种方式&am…...

golang -- slice 底层逻辑
目录 一、前言二、结构三、创建3.1 根据 make创建3.2 通过数组创建 四、内置append追加元素4.1 追加元素4.2 是否扩容4.2.1 不扩容4.2.2 扩容 总结 一、前言 前段时间学了go语言基础,过了一遍之后还是差很多,所以又结合几篇不同资料重新学习了一下相关…...

SOC-ESP32S3部分:26-物联网MQTT连云
飞书文档https://x509p6c8to.feishu.cn/wiki/IGCawAgqFibop7kO83KcsDFBnNb ESP-MQTT 是 MQTT 协议客户端的实现,MQTT 是一种基于发布/订阅模式的轻量级消息传输协议。ESP-MQTT 当前支持 MQTT v5.0。 特性 支持基于 TCP 的 MQTT、基于 Mbed TLS 的 SSL、基于 WebSo…...
从前端工程化角度解析 Vite 打包策略:为何选择 Rollup 而非 esbuild。
文章目录 前言一、esbuild 与 Rollup 的技术特性对比1、esbuild:极速开发利器,功能尚待完善2、Rollup:专业打包工具,功能全面强大 二、Vite 打包策略的工程化考量因素1、开发阶段与生产阶段的需求差异2、功能完整性与生态兼容性3、…...
三层架构 vs SOA vs 微服务:该选谁?
三层架构 vs SOA vs 微服务:该选谁? 一、从单体到分布式:架构演进的必然性 最早的系统架构通常是单体架构(Monolithic Architecture),所有功能都打包在一个应用里,部署方便,但扩展性和灵活性有限。后来,为了让系统更具可维护性,三层架构成为主流。但当业务变得复杂…...

制造业的未来图景:超自动化与劳动力转型的双重革命
市场现状:传统制造业的转型阵痛 当前全球制造业正站在历史性变革的十字路口。埃森哲对552位工厂经理的全球调研显示,60%的受访者将劳动力转型视为首要战略任务,而63%的工厂正在加速部署自动化技术[1]。超过75%的工厂经理认为&…...
使用Haproxy搭建Web群集
一、基础环境准备 服务器规划 67 HAProxy调度器:1台 (2核4G,CentOS 7/8) Web服务器:至少2台(如Nginx/Apache,建议192.168.1.101-102) 客户端测试机:1台(Windows/Linux)…...

【Unity】相机 Cameras
1 前言 主要介绍官方文档中相机模块的内容。 关于“9动态分辨率”,这部分很多API文档只是提了一下,具体细节还需要自己深入API才行。 2 摄像机介绍 Unity 场景在三维空间中表示游戏对象。由于观察者的屏幕是二维屏幕,Unity 需要捕捉视图并将…...

如何在 Solana 上发币,并创建初始流动性让项目真正“动”起来?
在 Solana 上发行代币如今已不再是技术门槛,而是市场策略和执行效率的较量。如果你只是简单发了一个代币,却没为它建立流动性和市场机制,那么它就只是一个“死币”。 本文将带你一步步理解,如何从发币到建立流动性池,…...
C++.凸包算法
C.凸包算法 1. 凸包算法概述1.1 凸包的定义1.2 凸包算法的应用场景 2. Graham扫描算法2.1 算法原理2.2 C代码实现2.3 示例分析Mermaid图示 3. Andrew算法3.1 算法原理3.2 C代码实现3.3 示例分析Mermaid图示 4. 算法性能比较4.1 时间复杂度分析Graham扫描算法Andrew算法性能对比…...
C++ 游戏开发详细流程
🧠 第一阶段:项目规划与架构设计 关键词:系统性、模块化、可扩展性 1.1 目标明确 游戏类型:2D / 2.5D / 3D / VR平台选择:PC、主机、移动设备多人/单人:是否含网络模块(决定是否使用 socket、U…...

核心机制:滑动窗口
TCP 协议 1.确认应答 可靠传输的核心机制 2.超时重传 可靠传输的核心机制 3.连接管理 TCP/网络 最高的面试题 三次握手,建立连接(必须是 三次) 四次挥手,断开连接(可能是 三次) 核心机制四:滑动窗口 算法中的"滑动窗口" 出自 TCP 前面的三个…...

苹果电脑深度清理,让老旧Mac重焕新生
在日常使用苹果电脑的过程中,随着时间推移,系统内会积累大量冗余数据,导致电脑运行速度变慢、磁盘空间紧张。想要让设备恢复流畅,苹果电脑深度清理必不可少。那么,如何进行苹果电脑深度清理呢?接下来为你详…...
Hadoop复习(一)
初识Hadoop 分别从选择题、大题和复习Linux命令来复习 选择题 问题 1 单项选择难度级别 3 2 分 下面哪一个不属于Google的三驾马车? 答案选项组 GFS NDFS BigTable MapReduce 问题 2 单项选择难度级别 3 2 分 Hadoop 3.x版本支持最低的JDK版本是&#x…...

微服务面试(分布式事务、注册中心、远程调用、服务保护)
1.分布式事务 分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如: 跨数据源的分布式事务跨服务的分布式事务综合情况 我们之前解决分布式事务问题是直接使用Seata框架的AT模式,但是解决分布式事务…...

高性能MYSQL(三):性能剖析
一、性能剖析概述 (一)关于性能优化 1.什么是性能? 我们将性能定义为完成某件任务所需要的时间度量,换句话说,性能即响应时间,这是一个非常重要的原则。 我们通过任务和时间而不是资源来测量性能。数据…...
Go 语言中的 panic 详解
Go 语言中的 panic 详解 在 Go 语言中,panic 是一种用于处理不可恢复错误的机制。当程序遇到无法继续执行的严重错误时,会自动或手动触发 panic,终止当前函数的执行,并开始进行堆栈展开(stack unwind…...

mysql(十四)
目录 多表查询 1.准备工作 2--创建表格 3--插入数据 2.笛卡尔积查询 3.内连接查询 1--隐式内连接 格式 查询 2--显示内连接(Inner join .. on ) 格式 查询 4.外连接查询 1--左外连接查询(LEFT OUTER JOIN .. ON ) 格式 查询 2-- 右…...

工业物联网中的事件驱动采样架构及优化
论文标题 Event-Based Sampling Architecture and Optimization for Industrial Internet of Things 工业物联网中的事件驱动采样架构及优化 作者信息 Tejas Thosani Process Control Systems, Micron Technology Inc., Manassas, USA tthosanimicron.com Andres Prado Esp…...

基于 HT for Web 的轻量化 3D 数字孪生数据中心解决方案
一、技术架构:HT for Web 的核心能力 图扑软件自主研发的 HT for Web 是基于 HTML5 的 2D/3D 可视化引擎,核心技术特性包括: 跨平台渲染:采用 WebGL 技术,支持 PC、移动端浏览器直接访问,兼容主流操作系统…...

JavaScript 性能优化:从入门到实战
在当今快节奏的互联网时代,用户对网页和应用的加载速度与响应性能要求越来越高。JavaScript 作为网页交互的核心语言,其性能表现直接影响用户体验。本文将用简单易懂的语言,带你了解 JavaScript 性能优化的实用技巧,帮助你的代码跑…...

启动metastore时报错MetaException(message:Version information not found in metastore
把hdfs清空重新安装了一下,hive的mysql元数据库删除掉之后重建之后一直启动报错 metastore.RetryingHMSHandler (RetryingHMSHandler.java:<init>(83)) - HMSHandler Fatal error: MetaException(message:Version information not found in metastore.) 后来…...
Spring 中 @Value 注解多实例配置方案详解
引言 在使用 Spring 框架进行开发时,我们经常会使用 Value 注解来注入配置值。然而,当我们需要创建同一个类的多个实例,并且每个实例需要使用不同的配置值时,直接在类中使用 Value 注解就会遇到问题。本文将深入探讨这个问题&…...

MyBatisPlus(1):快速入门
我们知道,MyBatis是一个优秀的操作数据库的持久层框架(优秀持久层框架——MyBatis),其基于底层的JDBC进行高度封装,极大的简化了开发。但是对于单表操作而言,我们需要重复地编写简单的CRUD语句。这其实是不…...

京东热点缓存探测系统JDhotkey架构剖析
热点探测使用场景 MySQL 中被频繁访问的数据 ,如热门商品的主键 IdRedis 缓存中被密集访问的 Key,如热门商品的详情需要 get goods$Id恶意攻击或机器人爬虫的请求信息,如特定标识的 userId、机器 IP频繁被访问的接口地址,如获取用…...
多国金融市场数据对接指南(印度、印尼、韩国)
一、StockTV多国数据对接概述 StockTV提供统一的API接口规范对接全球金融市场数据,本文重点介绍印度(国家ID:14)、印尼(国家ID:42)、韩国(国家ID:xx)的股票市场对接方案。 共同特性 统一认证…...

【Elasticsearch】ILM(Index Lifecycle Management)策略详解
ILM(Index Lifecycle Management)策略详解 1.什么是 ILM 策略?2.ILM 解决的核心业务问题3.ILM 生命周期阶段3.1 Hot(热阶段)3.2 Warm(温阶段)3.3 Cold(冷阶段)3.4 Delete…...