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的对象作为成员变量,这样就可以用他的函数了

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值