widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QIcon>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT //处理信号与槽的源组件
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots: //声明槽函数
void pushBut1_clicked(); //自定义对按钮1的槽函数
void on_pushBut2_clicked(); //系统声明的对于按钮2的槽函数
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
main.cpp
#include "widget.h" //引入自定义的头文件
#include <QApplication> //引入应用程序的头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //实例化应用程序的对象
Widget w; // 使用自定义对象在栈区实例化一个对象
w.show(); // 调用show方法将界面显示出来
return a.exec(); // 阻塞等待界面处理
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) //构造函数的实现
: QWidget(parent) //调用父类的构造函数
, ui(new Ui::Widget) //给指针成员初始化空间
{
ui->setupUi(this); //调用ui界面的设置界面函数
//设置固定尺寸
this->setFixedSize(600,400);
//设置窗口标题
this->setWindowTitle("myQQ");
//设置窗口图标
this->setWindowIcon(QIcon(":/icon/QQ.png"));
this->setStyleSheet("border: none;");
//设置logo
ui->lab4->setScaledContents(true);
ui->lab4->setPixmap(QPixmap(":/icon/logo.png"));
//设置用户名图标
ui->lab2->setScaledContents(true);
ui->lab2->setPixmap(QPixmap(":/icon/zhanghao.png"));
//设置密码图标
ui->lab3->setScaledContents(true);
ui->lab3->setPixmap(QPixmap(":/icon/denglumima.png"));
//将密码框设置为密文模式
ui->lineEdit2->setEchoMode(QLineEdit::Password);
//消除边框
ui->lineEdit->setStyleSheet("border: none;");
ui->lineEdit2->setStyleSheet("border: none;");
//设置占位符
ui->lineEdit->setPlaceholderText("QQ号码/手机/邮箱");
ui->lineEdit2->setPlaceholderText("密码");
//将按钮1的clicked信号手动与自定义的信号连接
connect(ui->pushBut,SIGNAL(clicked()),this,SLOT(pushBut1_clicked()));
//将按钮1发射的信号与当前界面自定义的槽函数进行连接
//参数1:信号的发射者
//参数2:发射的信号
//参数3:信号的接收者,当前界面
//参数4,接收后处理的槽函数
}
Widget::~Widget() //析构函数的定义
{
delete ui; //将类中指针成员空间释放
}
void Widget::pushBut1_clicked()
{
if(ui->lineEdit->text()=="admin" && ui->lineEdit2->text()=="123456" )
{
qDebug()<<"登陆成功";
close();
}
else
{
qDebug()<<"账号和密码不匹配,请重新输入";
ui->lineEdit2->clear();
}
}
//按钮2对应的槽函数
void Widget::on_pushBut2_clicked()
{
close();
}