QT实现登陆界面

时间:2022-02-20 05:33:35

QT实现登陆界面

QT实现登陆界面

QT实现登陆界面

代码:
MainWindows.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QDialog>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private:
Ui::MainWindow *ui;


private slots:
void on_loginButton_clicked(); //两个按键分别对应的槽函数
void on_forgetBurron_clicked();
};

class Dialog:public QDialog
{
Q_OBJECT;
public:
explicit Dialog(QDialog *parent=0);
~Dialog();
void dialogUse();
private slots:
//这两个槽函数是当用户登陆到系统之后我规划要做的事情,但是后面我没有对其进行实现
void findClick();
void enableFindButton();


private:
QDialog *dialog;





};
#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QMessageBox"
#include"QPushButton"
#include<QDialog>


class Dialog;



MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->passwardLine->setEchoMode(QLineEdit::Password);//当输入密码时,显示为*******

}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_forgetBurron_clicked()
{
close(); //当用户忘记密码时候,单击forget passward按键,直接退出程序
}

void MainWindow::on_loginButton_clicked()
{
if(this->ui->nameLine->text().trimmed() == tr("Manuel") &&
this->ui->passwardLine->text().trimmed()== tr("123456789")) //去除lineEdit内的用户名和密码进行校验
{
//登陆成功后显示对话框
Dialog *dialogLogin=new Dialog;
dialogLogin->dialogUse();


}
else
{
//用户输入存在错误
QMessageBox::warning(this,tr("waring"),tr("your passward is wrong"),QMessageBox::Yes);
ui->nameLine->clear(); //清空姓名nameLine
ui->passwardLine->clear(); //清空密码passwardLine
ui->nameLine->setFocus(); //将鼠标重新定位到nameLine
}
}



Dialog::Dialog(QDialog *parent)
:QDialog(parent)
{
dialog=new QDialog();
dialog->setWindowTitle(tr("Manuel"));



}

void Dialog::dialogUse()
{

dialog->show();

}
void Dialog::findClick()
{



}


void Dialog::enableFindButton()
{





}
Dialog::~Dialog() //Dialog类的析构函数里面不知道写什么,就没写,哈哈......
{


}

Main.cpp

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

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();


return a.exec();
}

程序写的并不是非常全面,还有很多可以改进的地方
1 登陆界面当用户输入的密码或者用户名是空时,要做出相应的提示
2 当用户的登陆进入界面后应该做出相应的操作,而不是空空的一个dialog对话框
3 当用户点击忘记密码时,不应该是直接退出对话框
4 应当提供给用户更改密码的功能
。。。。。。
实在太多了,就不一点一点写下去了。

刚开始学QT,写的程序不太好多多见谅。

通过这个程序让我学习到C++中一个类调用另一个类里面函数的方法

假设你想在类A里调用类B的函数int f(x),两种办法:

1、class A::B 也就是说将B定义为A的父类, 这样你就可以自然的在A里面用f(x)了

2、

class A
{

B B_ins;
int g(x);
}
int g(x)
{
return B_ins.f(x)
}

也就是说你可以在A里面使用一个B的对象作为成员变量,这样就可以用他的函数了