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