QT-功能-用代码实现一个登录界面

调用qt的类,用代码来实现一个简单的登录界面

1.新建一个有ui界面的工程,其基类为dialog

2. 代码实现

dialog.h

添加控件头文件

#include <QLabel>
#include <QGridLayout>
#include <QLineEdit>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QMessageBox>

控件声明

private:
    QLineEdit *usrLineEdit;
    QLineEdit *pwdLineEdit;
    QLabel *usrLabel;
    QLabel *pwdLabel;
    QGridLayout *gridlayout;
    QPushButton *okBtn;
    QPushButton *cancelBtn;
    QVBoxLayout *vboxLayout;

public slots:
    //virtual void accept ();

private slots:
    //自定义私有槽函数
    void okBtnclicked();
dialog.cpp

构造函数中实例控件并实现

	//设置页面最大最小
    this->setMinimumSize(280,150);
    this->setMaximumSize(280,150);
    //实例用户名密码控件
    usrLabel = new QLabel(tr("用户名:"));
    pwdLabel = new QLabel(tr("密 码:"));
    usrLineEdit = new QLineEdit;
    pwdLineEdit = new QLineEdit;
    //密码*号输入
    pwdLineEdit->setEchoMode(QLineEdit::Password);
    //限制输入12位
    usrLineEdit->setMaxLength(12);
    pwdLineEdit->setMaxLength(12);
    //地址占位符
    usrLineEdit->setPlaceholderText("请输入用户名");
    pwdLineEdit->setPlaceholderText("请输入密码");
    //实例网格布局控件
    gridlayout = new QGridLayout;
    //添加布局 0,0,1,1 行 列 行间距 列间距
    gridlayout->addWidget(usrLabel,0,0,1,1);
    gridlayout->addWidget(usrLineEdit,0,1,1,1);
    //间隔
    gridlayout->setSpacing(20);
    gridlayout->addWidget(pwdLabel,1,0,1,1);
    gridlayout->addWidget(pwdLineEdit,1,1,1,1);
    //实例按钮控件
    okBtn = new QPushButton(tr("确定"));
    cancelBtn = new QPushButton(tr("取消"));

    //使用定义虚函数的连接
    //connect(okBtn,SIGNAL(clicked()),this,SLOT(accept()));
    //自定义槽函数的连接
    connect(okBtn,SIGNAL(clicked()),this,SLOT(okBtnclicked()));
    connect(cancelBtn,SIGNAL(clicked()),this,SLOT(reject()));
    QHBoxLayout *hboxLayout = new QHBoxLayout;
    hboxLayout->setSpacing(60);
    //横向布局填充控件
    hboxLayout->addWidget(okBtn);
    hboxLayout->addWidget(cancelBtn);
    //实例纵向布局填充刚刚实例的两个布局
    vboxLayout = new QVBoxLayout;
    vboxLayout->addLayout(gridlayout);
    vboxLayout->addLayout(hboxLayout);
    //显示内容
    this->setLayout(vboxLayout);

相应的槽函数实现

//定义虚函数写法
/*
void Dialog::accept()
{
    if(usrLineEdit->text().trimmed() == "admin" && pwdLineEdit->text().trimmed() == "admin")
    {
        QDialog:: accept ();
    }else
    {
        QMessageBox::warning(this,"警告","用户名或密码错误!!!",
        QMessageBox::Yes);

        //内容清除和光标定位
        usrLineEdit->setFocus();
        pwdLineEdit->clear();
        usrLineEdit->clear();

    }
}
*/

/一般定义
void Dialog::okBtnclicked()
{
    if(usrLineEdit->text() == tr("admin")
            && pwdLineEdit->text() == tr("admin"))
    {
        accept();
    }
    else{
        QMessageBox::warning(this,"警告","用户名或密码错误",
                             QMessageBox::Yes);

        usrLineEdit->clear();
        pwdLineEdit->clear();
        //定位光标
        usrLineEdit->setFocus();
    }


}

3.效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.可改进之处

1.可以连接数据库功能。进行数据库数据验证
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值