北京市保障性住建设投资中心网站,郑州住房城乡建设官网,北京软件开发公司推荐,免费网站从哪里申请点击登录按钮后#xff0c;判断账号和密码是否一致#xff0c;如果匹配失败#xff0c;则弹出错误对话框#xff0c;文本内容“账号密码不匹配#xff0c;是否重新登录”#xff0c;给定两个按钮ok和cancel#xff0c;点击ok后#xff0c;会清除密码框中的内容#xf…点击登录按钮后判断账号和密码是否一致如果匹配失败则弹出错误对话框文本内容“账号密码不匹配是否重新登录”给定两个按钮ok和cancel点击ok后会清除密码框中的内容继续进行登录如果点击cancel按钮则关闭界面。
如果账号和密码匹配则弹出信息对话框给出提示信息为“登录成功”,给出一个按钮ok点击ok后关闭整个登录界面跳转到其他界面
点击取消按钮后弹出问题对话框询问是否确定要退出登录给出两个按钮yes|no,点击yes则直接关闭整个登录界面如果点击no则进行进行登录
要求对象版和静态成员函数版至少各实现一个
form.h
#ifndef FORM_H
#define FORM_H#include QWidgetnamespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTpublic:explicit Form(QWidget *parent nullptr);~Form();public slots:void mySlot(QString e); //自定义的槽函数private:Ui::Form *ui;
};#endif // FORM_Hwidget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#includeQIcon
#include QLabel
#include QLineEdit
#include QPushButton
#include QDebug
#include QMessageBoxQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECT
signals://声明信号函数权限void mySignal(QString e); //自定义一个无参无返回值信号函数
public slots://槽函数声明的权限//自定义一个无参无返回值槽函数void on_clicked_btn1();void on_clicked_btn2();public:Widget(QWidget *parent nullptr);~Widget();private:Ui::Widget *ui;
};
#endif // WIDGET_Hform.cpp
#include form.h
#include ui_form.hForm::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui-setupUi(this);
}Form::~Form()
{delete ui;
}void Form::mySlot(QString e)
{this-show(); //将自身界面展示出来
}main.cpp
#include widget.h
#include form.h
#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Form f;//将w界面的自定义信号函数与f界面的槽函数进行连接QObject::connect(w, Widget::mySignal, f, Form::mySlot);return a.exec();
}widget.cpp
#include widget.h
#include ui_widget.h
QLineEdit *edt2;
QLineEdit *edt1;
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);//设置窗口标题this-setWindowTitle(my_homework);//设置窗口图标this-setWindowIcon(QIcon(:/icon/che.JPG));//固定窗口尺寸this-setFixedSize(530,330);//设置logoQLabel *labnew QLabel(this);lab-resize(530,330);lab-setPixmap(QPixmap(:/icon/logo.png));lab-setScaledContents(true);//设置登录账号QLabel *lab1new QLabel(this);lab1-move(365,255);lab1-resize(20,20);lab1-setPixmap(QPixmap(:/icon/userName.jpg));lab1-setScaledContents(true);edt1 new QLineEdit(this);edt1-move(390,250);edt1-resize(135,25);//设置登录密码QLabel *lab2new QLabel(this);lab2-move(365,280);lab2-resize(20,20);lab2-setPixmap(QPixmap(:/icon/passwd.jpg));lab2-setScaledContents(true);edt2 new QLineEdit(this);edt2-move(390,280);edt2-resize(135,25);edt2-setEchoMode(QLineEdit::Password); //设置回显模式//登录按钮QPushButton *btn1new QPushButton(登录,this);btn1-move(415,305);btn1-resize(40,25);//取消按钮QPushButton *btn2new QPushButton(退出,this);btn2-move(465,305);btn2-resize(40,25);//将按钮btn1发射的信号手动连接到界面本身的自定义槽函数中connect(btn1,QPushButton::clicked,this,Widget::on_clicked_btn1);//将btn2发射的信号手动连接到界面本身的自定义槽函数中connect(btn2,QPushButton::clicked,this,Widget::on_clicked_btn2);//将自定义的函数与自定义槽连接connect(this,Widget::mySignal,[](QString e){qDebug()e;});
}Widget::~Widget()
{delete ui;
}void Widget::on_clicked_btn1()
{QString usernameedt1-text();QString pwdedt2-text();if(usernameadminpwd123456){QMessageBox::information(this,信息,登录成功,QMessageBox::Ok);qDebug()登录成功;//关闭自身界面this-close();//跳转到其他界面emit mySignal(hello world);}else{int ret QMessageBox::critical(this,error,账号密码不匹配,是否重新登录,QMessageBox::Ok|QMessageBox::Cancel);qDebug()账号密码不匹配;if(ret QMessageBox::Ok){edt2-clear();}else if(ret QMessageBox::Cancel){this-close();}}
}
void Widget::on_clicked_btn2()
{int ret QMessageBox::question(this,question,是否确定退出,QMessageBox::Yes|QMessageBox::No);if(ret QMessageBox::Yes){this-close();}else if(ret QMessageBox::No){return;}
}