【Qt:为应用程序设置一个登入对话框】

文章详细介绍了如何在Qt环境中创建一个登录对话框,包括添加自定义类,实现登录按钮的点击事件,验证用户名和密码,以及如何将登录的用户名传递到主窗口进行显示。过程中涉及到了QDialog的使用,信号和槽的连接,以及QStatusBar的设置。
摘要由CSDN通过智能技术生成

续:Qt:实现打开文件并展示在文本编辑器中,http://t.csdn.cn/rM4bo

1 添加一个自定义的类(头文件和源文件)

1)选择项目,右击,Add New …
在这里插入图片描述
2)基类中没有QDialog类,这里选择custom自定义类
在这里插入图片描述
在这里插入图片描述

2 在logindialog.h文件中添加类的头文件代码:

在这里插入图片描述

3 在logindialog.cpp中添加类的实现代码:

在这里插入图片描述

4 实现登入对话框:

1)在mian.cpp文件中添加登入对话框实现代码在这里插入图片描述
2)在logindialog.h中定义登入对话框的头文件定义:

protected slots:
    void loginBtnClicked();

3)Alt+Enter,在logdialog.cpp中定义==loginBtnClicked()==的实现方式:

void logindialog::loginBtnClicked() //登入功能
{
	accept();
}

同时,在dlogdialog.cpp猪程序中关联登入和关闭功能:

    connect(loginBtn, &QPushButton::clicked, this, &logindialog::loginBtnClicked);  //关联登入功能槽

    connect(exitBtn, &QPushButton::clicked, this, &logindialog::close); //关闭按钮

4)Ctrl+R,运行后效果如下:
在这里插入图片描述
5)更改登入槽代码,实现对用户和密码的判断:
在logindialog.cpp中输入下方代码:
在这里插入图片描述Ctrl+R,运行效果如下:
在这里插入图片描述
6)验证输入的用户名和密码合法性:
在这里插入图片描述
Ctrl+R,运行效果如下:
在这里插入图片描述

5 实现登入的用户名在主窗口显示

1)在logindilog.h中申明一个信号,将登入的用户名传递给这个信号:

signals:
    void login(const QString &userName);

并在logindialog.cpp中关联发射信号
在这里插入图片描述

2)在mainwindow.h中设置登入用户名函数为公共槽:
在这里插入图片描述3)Atl+Enter,在mainwindow.cpp中添加setLoginUser的实现方式:
添加状态栏头文件

#include <QStatusBar>

在setLoginUser函数中添加如下代码:
在这里插入图片描述
4)在main.cpp中,关联:登入对话框和主窗口设置用户名槽函数
在这里插入图片描述
5)Ctrl+R,运行:
若logindialog.h中添加Q_OBJECT后,出现报错undefined reference to ‘logindialog::staticMeta0bject’,此时在构建中点击执行qmake:
在这里插入图片描述
再次运行效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值