第四章 编写登录窗口
本节要实现的是一个登录窗口,输入正确的密码就能够进入主窗口,错误密码提示错误。
通过上节的多窗口原理实现由登录对话框进入主窗口,而用户名和密码可以用if语句进行判断。
随着我们学习的深入,以后会采用数据库的形式保存。
实现过程:
1.先新建Qt4 Gui Application工程,工程名为login,选用QmainWindow作为Base class,这样便建立了主窗口。
下面我们要在Main.cpp中添加登录对话框。
首先要新建一个登录的对话框LoginDialog,继承QDialog。下面给大家演示如何添加新的类。
这样就完成了登录窗口类的添加,下面要在窗口中添加一些必要的控件。如下图所示
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "logindialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
LoginDialog *login = new LoginDialog();
mainWindow w;
if(login->exec() == QDialog::Accepted){
w.show();
return a.exec();
}else
return 0;
}
下面实现LoginDialog的相关函数,在按键上右键转到槽函数,跳到按钮的点击响应函数
实现关闭程序很简单,只要调用close()函数就可以了。
同样的方法,下面实现最主要的函数,就是登录的响应函数。
void LoginDialog::on_pbLogout_clicked()
{
close();
}
void LoginDialog::on_pbLogin_clicked()
{
if(ui->leUserName->text() == "hyarm" && ui->lepasswd->text() == "123456")
accept();
else
QMessageBox::information(this,tr("提示"),tr("密码错误,请重新输入密码"),QMessageBox::Yes);
}
然后运行一下程序,如果输入正确的密码就会显示主对话框,如果输入错误就会提示错误。
我们还要添加一下QTextCodec,解决乱码的问题。
在main.cpp中添加头文件。
#include <QTextCodec>
在main函数中添加如下代码
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
一般情况下,如果我们输入错了密码,会把密码一项清空,等待用户输入,只要在错误提示的后面添加如下代码即可。
QMessageBox::information(this,tr("提示"),tr("密码错误,请重新输入密码"),QMessageBox::Yes);
ui->lepasswd->clear();
ui->leUserName->clear();//清除两个对话框
ui->leUserName->setFocus();//设置用户名对话框为焦点,方便用户输入
今天简单的给大家讲了如何建立一下登录对话框,华越嵌入式将陆续为大家介绍Qt的开发及应用。敬请关注