QT18 - 不完善的登录对话框

黑马QT教程笔记合集 QT教程视频地址:未更新完~ 阅读详情

本文学习自 狄泰软件 唐佐林老师的 QT课程。


框架:

继承自 QDialog
用户名标签+密码标签 :QLabel 标签
输入用户名和密码文本框:QLineEdit 文本框
点击登录,取消按钮:QPushButton按钮

注意:
1 强制指定对话框大小,大小不可变动:
setFixeSize(num,num);

2 密码输入显示*
setEchoMode(QLineEdit::Password)

This enum type describes how a line edit should display its contents.
QLineEdit::Password 2 Display asterisks instead of the characters actually entered//显示星号而不是实际输入的字符。
See also setEchoMode() and echoMode().

3 获取用户输入的用户名和密码,在两个不同对话框之间传递数据

// 4 5 暂未实现
4 检查用户名和密码是否为空,当用户名和密码为空时 提示错误

5 随机验证码

实验,简单的,不完善的登录对话框

在这里插入图片描述在这里插入图片描述

QLoginDialog.h

#ifndef _QLOGINDIALOG_H_
#define _QLOGINDIALOG_H_

#include <QtGui/QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

class QLoginDialog : public QDialog
{
    Q_OBJECT
private:
    QLabel UserLabel;
    QLabel PwdLabel;
    QLineEdit UserEdit;
    QLineEdit PwdEdit;
    QPushButton LoginBtn;
    QPushButton CancelBtn;
    QString m_user;
    QString m_pwd;
private slots:
    void LoginBtn_Clicked();
    void CancelBtn_Clicked();
public:
    QLoginDialog(QWidget *parent = 0);
    QString getUser();
    QString getPwd();
    ~QLoginDialog();
};


#endif

Widget.h

#ifndef _WIDGET_H_
#define _WIDGET_H_

#include <QtGui/QWidget>
#include <QPushButton>

class Widget : public QWidget
{
    Q_OBJECT
private:
    QPushButton TestBtn;
private slots:
    void TestBtn_Clicked();
public:
    Widget(QWidget *parent = 0);//注意
    ~Widget();
};

#endif

QLoginDialog.cpp

#include "QLoginDialog.h"

#include <QDebug>

QLoginDialog::QLoginDialog(QWidget* parent) : QDialog(parent, Qt::WindowCloseButtonHint),
    UserLabel(this), PwdLabel(this), UserEdit(this), PwdEdit(this), LoginBtn(this), CancelBtn(this)
{
    UserLabel.setText("User ID:");
    UserLabel.move(20, 30) ;
    UserLabel.resize(60, 25);

    UserEdit.move(85, 30);
    UserEdit.resize(180, 25);

    PwdLabel.setText("Password:");
    PwdLabel.move(20, 65);
    PwdLabel.resize(60,25);

    PwdEdit.move(85, 65);
    PwdEdit.resize(180, 25);
    PwdEdit.setEchoMode(QLineEdit::Password);

    CancelBtn.setText("Cancel");
    CancelBtn.move(85, 110);
    CancelBtn.resize(85, 30);

    LoginBtn.setText("Login");
    LoginBtn.move(180, 110);
    LoginBtn.resize(85, 30);

    setWindowTitle("Login");
    setFixedSize(285, 170);

    connect(&LoginBtn, SIGNAL(clicked()), this, SLOT(LoginBtn_Clicked()));
    connect(&CancelBtn, SIGNAL(clicked()), this, SLOT(CancelBtn_Clicked()));
}

void QLoginDialog::LoginBtn_Clicked()
{
    qDebug() << "LoginBtn_Clicked() Begin";

    m_user = UserEdit.text().trimmed();//获取用户名对话框信息,并去除前后空格
    m_pwd = PwdEdit.text();

    done(Accepted);//设置返回值 完成

    qDebug() << "LoginBtn_Clicked() End";
}

void QLoginDialog::CancelBtn_Clicked()
{
    qDebug() << "CancelBtn_Clicked() Begin";

    done(Rejected);

    qDebug() << "CancelBtn_Clicked() End";
}

QString QLoginDialog::getUser()
{
    return m_user;
}

QString QLoginDialog::getPwd()
{
    return m_pwd;
}

QLoginDialog::~QLoginDialog()
{

}

Widget.cpp

#include "Widget.h"
#include "QLoginDialog.h"

#include <QDebug>

//父类构造函数,初始化列表
Widget::Widget(QWidget *parent) : QWidget(parent), TestBtn(this)
{
    TestBtn.setText("Test Login Dialog");

    setFixedSize(200, 50);

    connect(&TestBtn, SIGNAL(clicked()), this, SLOT(TestBtn_Clicked()));
}

void Widget::TestBtn_Clicked()
{
    QLoginDialog dlg;

    if( dlg.exec() == QDialog::Accepted )
    {
        qDebug() << "User: " + dlg.getUser();
        qDebug() << "Pwd: " + dlg.getPwd();
    }
}

Widget::~Widget()
{
    
}

main.cpp

#include <QtGui/QApplication>
#include "widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    
    return a.exec();
}
QT18主令控制器 介绍.zip QT18主令控制器 介绍zip,提供“QT18主令控制器 介绍”免费资料下载,主要包括产品的结构、尺寸等内容,可供选型参考。 立即下载

相关推荐

STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:    2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。    2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出

overflyme的博客 1万+

Qt界面设计时使各控件依据窗口缩放进行自适应填充的方法——使用布局、Spacer等控件

关于 Qt 布局管理,有专门的帮助文档页面Layout Management。本章的主要内容就是介绍布局管理的知识,Qt 设计师里面不仅有布局器的控件可以拖动使用,还可以在窗体里面选择控件,然后点击设计师上面的工具按钮自动添加布局器。本节首先大致介绍一下 Qt 设计师里面关于布局器的操作界面。Qt 的窗口主要内容包括: 布局的样式 , 基于UI界面设置布局 , 基于API设置布局。Qt 窗口布局是指将多个子窗口按照某种排列方式将其全部展示到对应的父窗口中的一种处理方式。

宁静致远的博客 1万+

别再为Word转PDF表格变形发愁了!Aspose.Words for Java 19.5 保姆级避坑指南

本文详细介绍了使用Aspose.Words for Java 19.5解决Word转PDF时表格变形问题的完整方案。从格式转换原理到实战技巧,涵盖固定表格宽度、禁用自动调整、强制文本换行等核心方法,并提供高级场景应对策略和性能优化建议,帮助开发者高效处理复杂文档转换需求。

weixin_28702105的博客 266

【Qt编程之Widgets模块】-002:QT窗体禁止缩放固定大小:使用setFixedSize方法

【代码】【QT编程】-001-QT窗体禁止拖动缩放:使用setFixedSize方法。

随意的风的专栏 1988

「极简」扣子(coze)教程 | 细节决定成败!这个小功能让用户满意度飙升,讲的太细了

这一期大师兄通过向扣子(coze)应用添加提示语的方法向用户显示系统运行的状态。

u014527622的博客 2111

ROS探索篇(一)在Gazebo中实现移动机器人仿真与环境搭建

$x+y=z$

weixin_52029211的博客 4619

Qt中设置窗体大小的方法

Qt中设置窗口大小为固定值得方法。

好儿郎~志在四方 4万+

Meta开源Ego-Exo4D数据集:如何用1400小时多模态视频训练你的AI模型

Meta开源的Ego-Exo4D数据集包含1400小时多模态视频,涵盖第一人称和第三人称视角、眼动追踪、IMU传感器等多种模态,是AI模型训练的宝贵资源。本文详细介绍了从数据集下载、预处理到模型训练的全流程,帮助研究者高效利用这一多模态数据集进行AI模型开发。

weixin_29159441的博客 342

Python基础知识:构造函数中self用法

在Python开发(http://www.maiziedu.com/course/python-px/)编程语言中有种函数叫构造函数,在这个函数里面有一个关键词叫self,首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。下面就讲讲self关键词在构造函数中的使用方法。 构造 class FooBar:   def _int_(self):     self

qq_32506555的博客 5281

用FPGA控制步进电机是种什么体验?从状态机到分频器,详解Verilog驱动A4988全流程

本文详细介绍了如何使用FPGA通过Verilog语言控制步进电机,从状态机设计到A4988驱动模块的精准控制全流程。FPGA的并行处理能力和纳秒级响应速度使其在步进电机控制中展现出显著优势,特别适合工业自动化和精密仪器应用。通过实战代码示例,展示了如何实现高效的状态机设计和可编程分频器,为开发者提供了一套完整的FPGA驱动步进电机解决方案。

weixin_30983965的博客 329

Quartus ||———基于Verilog HDL的数字秒表设计实验

Quartus ||———基于Verilog HDL的数字秒表设计实验一、实验目的二、实验步骤(一)新建工程(二)添加设计文件(三)综合分析与功能仿真1、综合分析2、功能仿真 一、实验目的 用Verilog HDL设计一个数字跑表,所需引脚和功能如下: 二、实验步骤 (一)新建工程 在创建好工程名称后,选定芯片类型 (二)添加设计文件 新建Verilog文件,键入代码如下 module n_clk_top( input clk, input rese

TBMmagic的博客 5525

Python self参数

https://blog.youkuaiyun.com/bing900713/article/details/60884931 https://www.cnblogs.com/yibeimingyue/p/11225107.html

m0_60172650的博客 153

FAST-LIVO2 源码精读(五):IMU 运动模型、离散传播与去畸变原理

本文是「FAST-LIVO2 激光-惯性-视觉里程计源码精读」专栏第五篇,数学基础篇章(第 4–7 篇)的第二篇。上一篇在 SO(3) 流形上建立了姿态表示与右扰动模型;本篇聚焦 IMU 预积分的核心问题:一帧激光扫描横跨约 100 ms,帧内每一个点的采集时刻各不相同,如何利用 200 Hz 的 IMU 量测将全帧点云统一对齐到帧末时刻?答案完整封装在(587 行)的函数中,本篇逐段拆解其四阶段逻辑,并推导协方差矩阵随误差状态转移矩阵F_x逐帧演化的物理含义。

PX4-SLAM-PNC 156

Qt 第18课、登录对话框实例分析

思考:如何开发一个可以在不同项目间复用的登陆对话框? 1、登陆对话框 登陆对话框需求分析 — 可复用软件部件 — 获取用户名和密码 附加需求 — 随机验证码 登陆对话框的设计和架构 ...

大大怪将军的博客 314

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

2023/9/18 -- C++/QT

信号与槽、对话框

weixin_54147737的博客 467

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

嵌入式Qt 制作一个登录对话框

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2401_84010362的博客 1112

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

QT学习4.18

一,自己制作一个QT文件遇到的问题 一,发布文件时,文件包含的链接库以及图片文件如何加入 1,关于发布的release版本的文件不能执行 https://blog.youkuaiyun.com/bdhjun123/article/details/80200455 2,关于发布的QT文件图片不能播放 https://blog.youkuaiyun.com/fp27757097/article/details/51...

双鱼座boyy的博客 261

Qt实现的自定义登录框连接MySQL(完整的实现过程)

Qt实现的自定义登录注册窗口,连接MySQL

weixin_44954230的博客 1960

第18课 登录对话框实例分析

登录对话框的核心需求 --可复用软件部件 --获取用户名和密码 如何获取用户输入的用户名和密码? 如何在两个不同的对话框间传递数据? 通过附加的成员变量和成员函数完成不同对话框间的数据传递。       --将用户数据保存在私有成员变量中;       --通过公有成员函数进行数据传递。 路径:H:\TestQt\18_1\18_1.pro              ...

hani_lhp的博客 237

Qt学习 第18节:对话框

dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QDialog> namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: explicit Dialog(QWidget *parent = nullptr); ~Dialog(); private: Ui::Dialog *ui;...

人类工程师的博客 326

18、登录对话框示例分析25计时器

18、登录对话框示例分析 登录对话框是应用程序中常用部件。 思考:如何开发一个可以在不同项目间复用的登录对话框? 登录对话框需求分析:可复用软件部件。获取用户名和密码。附加需求:随机验证码。 如何获取用户输入的用户名和密码? 如何在两个不同的对话框间传递数据? 通过附加的成员变量和成员函数完成不同对话框间的数据传递。 检查用户名和密码是否为空:提示错误 随机验证码:当验证码输入...

WS857707645的博客 455

第18课 登陆对话框实例分析

1、登录对话框    1.1、 登录对话框的需求分析        1.1.1、 可复用软件部件(不同项目中都可以使用)        1.1.2、 获取用户名和密码        1.1.3、 附加需求:随机验证码            1.2、  登录对话框的架构与设计                        1.3、 如何获取用户名和密码及数据在两个不同对话框之间传递        1...

中年人 293

嵌入式Qt 制作一个登录对话框(1)

【代码】嵌入式Qt 制作一个登录对话框(1)

2401_84010326的博客 126

Qt学习day03 Qt设计师(designer) Qt创造器(qtcreator)

一 Qt设计师(designer) 案例:使用qt设计,重构加法计算器 1 创建工程目录 mkdir Calculator2 2 进入工程目录,输入“designer”启动设计师 1)在新建窗体界面选择模板 “Dialog Without Button” 2)在设计师界面中完成“计算器”界面设计 –》从“widget Box”中找到所用图形控件拖拽到父窗口上 Label、LineEdit、Push...

weixin_43789711的博客 1066

QT---day2---9.18

【代码】QT---day2---9.18。

yjh666jhy的博客 441
上一篇: 15_进程间通信6-共享存储
下一篇: 16_网络IPC6-报式套接字传输
Ma浩然
博客等级 码龄9年 1万+粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值