当用户点击取消按钮,弹出题目对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继承登录
当用户点击的登录按钮,进行账号和暗码的匹配,如果匹配乐成,则弹出信息对话框,给出信息为,登录乐成,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面
当账号和暗码不匹配是,给堕落误对话框,给出信息为账号和暗码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空暗码框后,继承登录。如果用户点击的取消,则关闭登录界面
要求:静态成员函数版本和对象版本各至少实现一个
main.c
- #include "widget.h"
- #include"second.h" //第二个界面的头文件
- #include <QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- Widget w; //实例化的第一个界面
- w.show();
- Second s; //实例化第二个界面
- //将第一个界面的跳转信号与第二个界面的槽函数进行连接
- //s.connect(&w, &Widget::jump, &s, &Second::jump_slot);
- //w.connect(&w, &Widget::jump, &s, &Second::jump_slot);
- QObject::connect(&w, &Widget::jump, &s, &Second::jump_slot);
- return a.exec();
- }
复制代码 widget.cpp
- #include "widget.h"
- #include "ui_widget.h"
- #include<QMessageBox> //消息对话框类
- #include<QDebug>
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- this->resize(900,800); //重置界面尺寸
- this->setWindowTitle("登录"); //设置界面名称为:登录
- this->setWindowIcon(QIcon("C:\\Users\\86183\\Desktop\\icon_dj40cz9xze4\\pictrue\\qq.png"));
- //设置界面图标
- //QLabel *
- lab1 = new QLabel(this); //定义文本
- lab1->resize(300,200); //设置文本框大小
- lab1->move(300,200); //移动文本位置
- lab1->setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\icon_dj40cz9xze4\\qq.png"));
- //设置文本为图片
- lab1->setScaledContents(true); //设置图片自动缩放
- //QLabel *
- lab2 = new QLabel("账号:",this); //定义文本
- lab2->resize(50,40); //重置文本框大小
- lab2->move(lab1->x(),lab1->y()+lab1->height()+10); //移动文本位置
- //QLabel *
- lab3 = new QLabel("密码:",this); //定义文本
- lab3->resize(50,40); //重置文本框大小
- lab3->move(lab2->x(),lab2->y()+lab2->height()); //移动文本位置
- //QLineEdit *
- edit1 = new QLineEdit(this);
- edit1->resize(250,30); //重置尺寸
- edit1->move(lab2->x()+lab2->width(),lab2->y());
- edit1->setStyleSheet("color:black"); //设置字体颜色
- edit1->setAlignment(Qt::AlignCenter); //设置文本对齐方式:居中
- edit1->setPlaceholderText("输入QQ账号"); //设置占位文本
- //QLineEdit *
- edit2 = new QLineEdit(this);
- edit2->resize(250,30); //重置尺寸
- edit2->move(lab3->x()+lab3->width(),lab3->y());
- edit2->setStyleSheet("color:black"); //设置字体颜色
- edit2->setAlignment(Qt::AlignCenter); //设置文本对齐方式:居中
- edit2->setEchoMode(QLineEdit::Password); //设置密文模式
- edit2->setPlaceholderText("输入QQ密码"); //设置占位文本
- //QPushButton *
- btn1 = new QPushButton("登录",this); //定义按键
- btn1->resize(110,40); //重置按键大小
- btn1->move(lab3->x(),lab3->y()+lab3->height()); //移动按键位置
- //QPushButton *
- btn2 = new QPushButton("取消",this); //定义按键
- btn2->resize(110,40); //重置按键大小
- btn2->move(btn1->x()+btn1->width()+80,btn1->y()); //移动按键位置
- /*
- 当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录
- 当用户点击的登录按钮,进行账号和密码的匹配,如果匹配成功,则弹出信息对话框,给出信息为,登录成功,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面
- 当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。如果用户点击的取消,则关闭登录界面
- */
- connect(btn1, &QPushButton::clicked, this, &Widget::my_signal_1_slot);
- connect(btn2, &QPushButton::clicked, this, &Widget::my_signal_2_slot);
- }
- Widget::~Widget()
- {
- delete ui;
- }
- void Widget::my_signal_1_slot()
- {
- if(edit1->text() == "sc"&& edit2->text() == "123" )
- {
- QMessageBox box(QMessageBox::Question,
- "结果",
- "登录成功",
- QMessageBox::Yes,
- this);
- box.setButtonText(QMessageBox::Yes, "确定");
- box.setDefaultButton(QMessageBox::No);
- int btn = box.exec();
- if(btn == QMessageBox::Yes)
- {
- this->close();
- emit jump();
- }
- }
- else
- {
- QMessageBox box(QMessageBox::Question,
- "结果",
- "账号与密码不匹配,是否重新登录",
- QMessageBox::Yes|QMessageBox::No,
- this);
- int btn = box.exec();
- if(btn == QMessageBox::Yes)
- {
- edit2->clear();
- }
- else if(btn == QMessageBox::No)
- {
- this->close();
- }
- }
- }
- void Widget::my_signal_2_slot()
- {
- int btn = QMessageBox::warning(this,
- "警告",
- "是否要确定退出登录",
- QMessageBox::Yes|QMessageBox::No,
- QMessageBox::No);
- if(btn == QMessageBox::Yes)
- {
- this->close();
- }
- else if(btn==QMessageBox::No)
- {
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |