设计一个登录界面(基础)

widget.h

#define WIDGET_H

#include <QWidget>                               //引入父类头文件
#include<QLabel>
#include<QPushButton>
#include<QLineEdit>
#include<QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }                   //命名空间的声明,UI界面生成的头文件的命名空间
QT_END_NAMESPACE

class Widget : public QWidget                    自定义的类,继承自QWidget
{
    Q_OBJECT                                     //处理信号与 槽的元对象

public:
    Widget(QWidget *parent = nullptr);           //自定义类的有参构造函数的声明 
    ~Widget();                                   //自定义类的析构函数的声明,是虚函数

private slots:                                   //该权限下声明槽函数
    void login_slot();
    void cancel_slot();

private:
    Ui::Widget *ui;                              //指向ui界面的指针,如果使用拖拽到界面的组件,需要使用该指针才能找到
public:
    QLabel *logoLabel;
    QLabel *nameLabel;
    QLabel *pwdLabel;
    QPushButton *nameBtn;
    QPushButton *pwdBtn;
    QLineEdit *nameText;
    QLineEdit *pwdText;

    QPushButton *loginBtn;
    QPushButton *cancelBtn;

};
#endif // WIDGET_H

main.cpp

#include "widget.h"

#include <QApplication>             //应用程序的头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);                 //实例化一个应用程序的对象
    Widget w;                                   //实例化一个自定义类的对象
    w.show();                                   //由于该类继承自QWidget,由此也有show函数,调用show函数显示界面
    return a.exec();                            //阻塞等待界面处理,等待信号与槽,等待用户操作界面,等待事件发生
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"                          //包含ui界面的头文件
#include<QIcon>
Widget::Widget(QWidget *parent)                 //有参构造函数的实现   调用了父类的构造函数
    : QWidget(parent)
    , ui(new Ui::Widget)                        //给ui指针初始化空间
{
    ui->setupUi(this);                          //调用ui界面中的设置界面函数
    this->setFixedSize(this->size());
    this->setWindowIcon(QIcon(":/icon/qq.png"));
    this->setWindowTitle("QQ");
    logoLabel = new QLabel(this);
    logoLabel->setPixmap(QPixmap(":/icon/logo_green.png"));
    logoLabel->resize(500,200);
    logoLabel->setScaledContents(true);


    nameBtn = new QPushButton(this);
    nameBtn->setIcon(QIcon(":/icon/denglu.png"));
    nameBtn->move(80,220);

    pwdBtn = new QPushButton(this);
    pwdBtn->setIcon(QIcon(":/icon/denglumima.png"));
    pwdBtn->move(80,260);

    nameText = new QLineEdit(this);
    nameText->setPlaceholderText("账号");
    nameText->resize(300,30);
    nameText->move(120,220);

    pwdText = new QLineEdit(this);
    pwdText->setPlaceholderText("密码");
    pwdText->setEchoMode(QLineEdit::Password);
    pwdText->resize(nameText->size());
    pwdText->move(120,260);

    loginBtn = new QPushButton("登录",this);
    loginBtn->setIcon(QIcon(":/icon/denglu_1.png"));
    loginBtn->move(300,300);

    cancelBtn = new QPushButton("取消",this);
    cancelBtn->move(400,300);
    cancelBtn->setIcon(QIcon(":/icon/quxiao.png"));

    connect(loginBtn,SIGNAL(clicked()),this,SLOT(login_slot()));
    connect(cancelBtn,SIGNAL(clicked()),this,SLOT(cancel_slot()));

}

Widget::~Widget()                       //析构函数的实现
{
    delete ui;                          //释放ui指针
}

void Widget::login_slot()
{
    QString username;
    QString password;
    username = nameText->text();
    password = pwdText->text();
    if(username == "admin" && password == "123456")
    {
        qDebug() << "登录成功";
        this->close();
    }
    else
    {
        qDebug() << "账号和密码不匹配,请重新输入";
        pwdText->clear();
    }

}
void Widget::cancel_slot()
{
    this->close();
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值