QT之创建登录对话框(十五)
admin
2023-07-27 22:20:05
0
    之前我们介绍了对话框的相关知识,那么今天我们就来创建一个登录对话框,包含用户名和密码的这么一个可复用的模板。

需求分析:登录对话框是应用程序中的常用部件。可复用软件部件,获取用户名和密码。最终我们将要做成如下所示的界面:
QT之创建登录对话框(十五)
登录对话框的设计与架构关系如图所示:
QT之创建登录对话框(十五)
我们 Widget 的头文件和 .cpp 文件实现如下所示:
QT之创建登录对话框(十五)QT之创建登录对话框(十五)
登录界面的头文件如下所示:
QT之创建登录对话框(十五)
其中界面按钮的实现程序如下:
QT之创建登录对话框(十五)
Login 和 Cancel 的点击响应我们就做了打印函数名。
最终构建运行得到的效果图如下所示:
QT之创建登录对话框(十五)
我们现在已经做出大概界面了。但是还存在几个问题:密码是明文,它的界面大小还是可变的。再者我们在登录和取消的时候只是加了打印语句,并没有做相应的处理。那么我们下来就要来解决这几个问题。
我们在帮助中搜索 QLineEdit 关键字,那么就会看见带有 Password 的属性,如下图所示:
QT之创建登录对话框(十五)
那么我们在 QLoginDialog 函数中加上 PwdEdit.setEchoMode(QLineEdit::Password)这句。我们再次构建运行,得到如下所示:
QT之创建登录对话框(十五)就在
那么密码显示的问题我们已经解决,我们再加上之前学过的 setFixedSize函数,那么它的窗口的大小就不可变了。
那么如果我们想要获取用户输入的用户名和密码怎么做呢?就是如何在两个不同对话框间传递数据。通过附加的成员变量和成员函数完成不同对话框间的数据传递!如下:
QT之创建登录对话框(十五)
我们在登录和取消响应的函数中做如下处理:
QT之创建登录对话框(十五)
m_user后面的 .trimmed() 属性意思是去除用户名中的空格。我们在到 Widget 中的 TestBtn_Clicked 函数中添加如下代码:
QT之创建登录对话框(十五)
那么此时我们就能获取到用户名和密码了,构建运行下。效果图如下所示:
QT之创建登录对话框(十五)
如果我们点击的是登录,则会打印出用户名和密码,而且点击完,登录对话框则会消失。如果点击的是取消,则不会打印什么东西,对话框消失。
本节我们先学习到这了,基本目的已经达成。我们通过本节总结如下:登录对话框可作为可复用对的软件部件进行开发;对话框之间是通过成员变量和成员函数进行数据的传递的,具体来说就是将用户数据保存在私有成员变量中,通过共有成员函数进行数据的传递。
那么后面我们会进行进一步的开发:例如检查用户名和密码是否为空,就是为空时进行错误提示; 登录对话框里面的随机码的验证,当验证码输入错误时进行提示,验证码随机刷新等。 我们会在后面继续进行试验。

相关内容

热门资讯

浙江宣传:“走个面儿”咋就没面... “咱北京两千多万人口,您受累,您走个面儿,把这第一波的票房带起来,咱就有了。”某知名导演的新片首映礼...
辞职声明仅95秒遭质疑,韩国队... 【环球时报综合报道】美加墨世界杯小组赛出局后,韩国队主教练洪明甫当地时间28日在墨西哥的韩国队大本营...
美媒爆料:美军第五舰队总部遭伊... 据美国《华尔街日报》27日报道,其通过对卫星图像、社交媒体视频和五角大楼记录的分析发现,今年2月底至...
英国智库给菲律宾GDP增速“浇... 【环球时报特约记者 叶满】英国经济研究机构凯投宏观发布的最新一期《亚洲经济展望》报告(以下简称“报告...
欧洲持续高温,有华人用冰箱降温... 连日来,欧洲多国迎来罕见极端高温天气,法国、德国、意大利等地气温持续飙升,部分地区突破40摄氏度。受...
伊副外长强调船只须按“伊朗线路... 伊朗外交部副部长加里巴巴迪当地时间29日晚间在接受采访时强调,所有船只均须按照“伊朗线路”通过霍尔木...
委内瑞拉强震已致1719人死亡 当地时间29日,委内瑞拉全国代表大会主席罗德里格斯通报,地震已造成该国1719人死亡,5034人受伤...
铋晟新材料申请氯氧化铋基复合材... 国家知识产权局信息显示,江苏铋晟新材料有限公司申请一项名为“一种氯氧化铋基复合材料及其制备方法和用途...
韩国政府将投资千万亿韩元于AI... 韩国总统李在明29日在总统府青瓦台主持召开会议,公布总额超千万亿韩元的半导体、物理人工智能(AI)和...
以色列防长称以伊可能随时再起冲... △卡茨(资料图)据以色列方面29日消息,以国防部长卡茨当天表示,鉴于复杂的安全局势和在黎巴嫩的军事行...