题目:编写一个登录功能的界面,在登录框项目中,将登陆按钮发射的tclicked信号,连接到自定义的槽函数中,在槽函数中,判断uü界面输入的用户名是否为"admin ,密码是否为"123456如果验证成功,则输出"登陆成功"并关闭界面,如果验证失败,则输出"“登陆失败",并将密码框中的内容清除。
widget.cpp
ui->setupUi(this);
//语音播报申请空间
speech = new QTextToSpeech(this);
//更改窗口界面的尺寸
//这样设置只是窗口的原始尺寸,使用setFixedSize可将窗口大小固定
this ->resize(QSize(600, 500));
this ->setFixedSize(600, 500);
//设置窗口透明度
this ->setWindowOpacity(0.9);
//界面标题更改
this ->setWindowTitle("Bear-ear-ar");
//设置窗口图标
this ->setWindowIcon(QIcon(":/icon/biaoti2.png"));
//设置主界面logo
logo = new QLabel(this); //实例化一个标签,指定父组件
logo ->resize(600, 200); //设置logo大小
logo ->setScaledContents(true); //设置图片自适应
logo ->setPixmap(QPixmap(":/icon/logo.png")); //放置图片
//设置账户logo
account_logo = new QLabel(this); //实例化一个标签,指定父组件
account_logo ->resize(48, 40); //设置logo大小
account_logo ->move(180, 255); //移动logo位置
account_logo ->setScaledContents(true); //设置图片自适应
account_logo ->setPixmap(QPixmap(":/icon/user.png")); //放置图片
//设置密码logo
passwd_logo = new QLabel(this); //实例化一个标签,指定父组件
passwd_logo ->resize(48, 40); //设置logo大小
passwd_logo ->move(180, 330); //移动logo位置
passwd_logo ->setScaledContents(true); //设置图片自适应
passwd_logo ->setPixmap(QPixmap(":/icon/passwd.png")); //放置图片
//设置账户(明文)
account = new QLineEdit(this); //实例化一个行编辑器,指定父组件
account ->move(240, 264); //移动行编辑器的位置
account ->setPlaceholderText("账号/邮箱/手机号"); //设置占位文本
//设置密码(密文)
passwd = new QLineEdit(this); //实例化一个行编辑器,指定父组件
passwd ->move(240, 337); //移动行编辑器的位置
passwd ->setPlaceholderText("密码"); //设置占位文本
passwd ->setEchoMode(QLineEdit::Password); //设置密文模式
//设置登录按钮
login_button = new QPushButton(this); //实例化一个按钮,指定父组件
login_button ->resize(80, 30); //设置按钮的大小
login_button ->move(160, 420); //移动按钮的位置
login_button ->setText("登录"); //设置占位文本
login_button ->setIcon(QIcon(":/icon/denglu.png")); //放置图片
//设置退出按钮
quit_button = new QPushButton(this); //实例化一个按钮,指定父组件
quit_button ->resize(80, 30); //设置按钮的大小
quit_button ->move(360, 420); //移动按钮的位置
quit_button ->setText("退出"); //设置占位文本
quit_button ->setIcon(QIcon(":/icon/tuichu.png")); //放置图片
//点击登录按钮,判断ui界面输入的账号是否为“admin”,密码是否为123456
//如果验证成功,则输出登录成功并关闭界面,如果验证失败,则输出“登录失败”并晴空输入框
//Qt4版本
//connect(login_button, SIGNAL(clicked()), this, SLOT(on_clicked_slot_1()));
//Qt5版本
connect(login_button, &QPushButton::clicked, this, &Widget::on_clicked_slot_2);
//语音播报
connect(login_button, &QPushButton::clicked, this, &Widget::on_clicked_slot_3);
}
//自定义有关登录按钮对应的槽函数(1)(不安全)(Qt4版本)
void Widget::on_clicked_slot_1()
{
//获取账号和密码
QString account_t = this ->account ->text();
QString passwd_t = this ->passwd ->text();
if("admin" == account_t && "123456" == passwd_t)
{
qDebug() << "登录成功" << endl;
this ->close();
}
else
{
qDebug() << "登录失败" << endl;
this ->passwd ->clear();
}
}
//自定义有关登录按钮对应的槽函数(2)(安全)(Qt5版本)
void Widget::on_clicked_slot_2()
{
//获取账号和密码
QString account_t = this ->account ->text();
QString passwd_t = this ->passwd ->text();
if("admin" == account_t && "123456" == passwd_t)
{
qDebug() << "登录成功" << endl;
this ->close();
}
else
{
qDebug() << "登录失败" << endl;
this ->passwd ->clear();
}
}
//语音播报
void Widget::on_clicked_slot_3()
{
speech ->say(this ->account->text());
}
widget.h
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
public:
//语言播报的栈区申请
QTextToSpeech *speech;
private:
Ui::Widget *ui;
//设置主界面logo
QLabel *logo;
//设置账户和密码的logo
QLabel *account_logo;
QLabel *passwd_logo;
//设置账户(明文)和密码(密文)
QLineEdit *account;
QLineEdit *passwd;
//登录和退出按钮
QPushButton *login_button;
QPushButton *quit_button;
//槽函数类内申明
private slots:
//自定义有关登录按钮对应的槽函数(1)(不安全的)(Qt4版本)
void on_clicked_slot_1();
//自定义有关登录按钮对应的槽函数(2)(安全的)(Qt5版本)
void on_clicked_slot_2();
//语言播报
void on_clicked_slot_3();
signals:
void my_signal();
结果样章: