longin.h
#ifndef LOGIN_H
#define LOGIN_H
#include <QDialog>
#include "ui_login.h"
class login : public QDialog,public Ui::login
{
    Q_OBJECT
public:
    login(QWidget *parent = 0);
//protected:
    //void changeEvent(QEvent *e);
private:
    void on_loginButton_clicked();
};
#endif // LOGIN_H
login.cpp
#include <QtGui>
#include "login.h"
#include "ui_login.h"
login::login(QWidget *parent) :
    QDialog(parent)
{
    setupUi(this);
    passwordLineEdit->setEchoMode(QLineEdit::Password);
}
/*void login::changeEvent(QEvent *e)
{
    QDialog::changeEvent(e);
    switch(e->type()){
    case QEvent::LanguageChange:
        retranslateUi(this);
        break;
    default:
        break;
    }
}
*/
void login::on_loginButton_clicked()
{
    if(nameLineEdit->text().trimmed()==tr("qt")&&passwordLineEdit->text()==tr("123456"))
//判断用户名和密码是否正确,加入trimmed()这个函数的作用就是移除字符串开头和结尾的空白字符
        accept();
    else{
        QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes);
//如果不正确,弹出警告对话框
        nameLineEdit->clear();//清空用户名输入框
        passwordLineEdit->clear();//清空密码输入框
        nameLineEdit->setFocus();//将光标转到用户名输入框
    }
}
main.cpp
 #include <QtGui/QApplication>
#include <QDialog>
#include "login.h"
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    login *logindialog=new login;
    if(app.exec()==QDialog::Accepted)
       {
           logindialog->show();
           return app.exec();
       }
       else return 0;
}