思维导图
完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面
如果账号和密码不匹配,弹出错误对话框,给出信息"账号和密码不匹配,是否重新登录“",并提供两个按钮YsNo,用户点击Ys后,清除密码框中的内容,继续让用户进行登绿,如果用户点击NO按钮,则直接关闭登录界面
如果用户点击取消按钮,则弹出一个问题对话框,给出信息"您是否确定要退出登录?“,并给出两个按钮YsNo,用户点击Ys后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能
要求:基于属性版和基于静态成员函数版至少各用一个
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlag(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
}
Widget::~Widget()
{
delete ui;
}
//点击登录按钮
void Widget::on_pushButton_clicked()
{
QString username;
QString password;
username = ui->lineEdit->text();
password = ui->lineEdit_2->text();
if(username == "123" && password == "123")
{
QMessageBox msg(QMessageBox::Information,"tip","login success",QMessageBox::Ok);
int res = msg.exec();
if(res==QMessageBox::Ok)
{
emit first_to_second();
this->close();
}
}
else
{
int res = QMessageBox::critical(this,"error","密码或账号错误,是否重新登陆",QMessageBox::Yes|QMessageBox::No);
if(res==QMessageBox::Yes)
{
ui->lineEdit_2->clear();
}
else
{
this->close();
}
}
}
//点击取消按钮
void Widget::on_pushButton_2_clicked()
{
int res = QMessageBox::information(this,"tip","你确定要推出吗",QMessageBox::Yes|QMessageBox::No);
if(res==QMessageBox::Yes)
{
this->close();
}
}
面试题整理
C++中的const的的用法
答:const在C++中主要起修饰作用,它可以修饰普通变量,当修饰局部普通变量时,普通变量的值无法被改变,并且必须使用常指针或者常引用才能指向它。它可以修饰指针,当他修饰指针时有几种情况,如int const *p,const修饰指针中的内容,指针的内容不可以改变但是指针的指向可以改变,int * const p,const修饰指针指向,指向不改变,指针中的值可以改变。指针还可以修饰函数,表示函数的返回值无法被改变,指针在类中也有许多应用,如当const修饰类对象时,表示常对象,其值无法被改变,在成员函数后修饰表示常成员函数,它无法改变类中的成员,特殊情况下可以在成员前加mutable关键字便可以修改。同时const还有保护数据的作用,当它修饰函数形参时可以保护参数在函数运行时不会被改变。如拷贝构造函数,运算符重载时就会使用大量的const用于保护数据。
new、delete与malloc、free的区别
答:new、delete是关键字,malloc、free是函数
new、delete可以在申请空间同时初始化,malloc、free不行
new、delete以数据类型为单位,malloc、free以字节为单位
在申请多个连续的空间时的格式不一样
在运行new时自动调用构造函数malloc不会
在运行delete时自动调用析构函数free不会
简述C++中的模板
C++中的模板是C++中十分好用的工具,它可以提高代码的复用性,体现了C++语言的泛型编程思想。模板主要分为类模板和函数模板,在使用模板时需要声明模板的参数数据类型,它主要的思路是通过虚拟的数据类型用以接收具体类型的参数。并使用虚拟数据类型构造类或者函数,以实现其泛用性。