Qt学习日志 登陆界面设计

Qt学习日志 登陆界面设计

本文采用ui界面和代码相结合的方式完成。实现功能有登陆背景、登陆默认账号和密码,以及账号密码错误提示。

话不多说,先上效果图

登录首界面马赛克为去掉身份标识,敬请谅解
用户名或密码错误提示在这里插入图片描述

(1)新建工程

创建新的 qt Empty qmake Project,在.pro文件中增加QT+=widgets

(2)新建文件,添加QT设计师界面类,如下图

在这里插入图片描述

(3)login.ui文件设计如下

在这里插入图片描述
添加了3个QLabel,分别用作logo、登录用户名和密码框;2个QLineEdit,分别用作用户名和密码的输入;两个按钮分别为登录和退出。 在这里插入图片描述
右键pushbutton,依次点击“转为槽”->clicked();
在这里插入图片描述

login.ui文件设计基本完成。

(4)login.cpp

#include "login.h"
#include "ui_login.h"
#include<QMessageBox>

login::login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::login)
{
    ui->setupUi(this);
    this->setWindowTitle(tr("**物流分析工具"));
    //提示性 默认账号密码
    ui->lineEdit->setText(tr("Admin"));
    ui->lineEdit_2->setText(tr("Admin"));
    ui->lineEdit_2->setEchoMode(QLineEdit::Password);//密码用圆点表示
    //设置校徽logo
    QImage *logo_img = new QImage(":/new/prefix1/src/logo.png");
    QImage *scaled_logo_img = new QImage();
    *scaled_logo_img = logo_img->scaled(120, 120, Qt::KeepAspectRatio);
    ui->label->setPixmap(QPixmap::fromImage(*scaled_logo_img));
    //设置背景图片
    QPixmap pixmap = QPixmap(":/new/prefix1/src/door.png").scaled(this->size());
    QPalette palette(this->palette());
    palette.setBrush(QPalette::Background, QBrush(pixmap));
    this->setPalette(palette);
}

login::~login()
{
    delete ui;
}

void login::on_pushButton_clicked()
{
    //获得userNameLEd输入框的文本:userNameLEd->text();
    //trimmed()去掉前后空格
    //tr()函数,防止设置中文时乱码
    if(ui->lineEdit->text().trimmed() == tr("Admin") && ui->lineEdit_2->text() == tr("Admin")) {
        accept();//关闭窗体,并设置返回值为Accepted
    } else {
        //标题              内容                OK按钮
        QMessageBox::warning(this, tr("警告!"), tr("用户名或密码错误!"), QMessageBox::Yes);
        // 清空输入框内容
        ui->lineEdit->clear();
        ui->lineEdit_2->clear();
        //光标定位
        ui->lineEdit->setFocus();
    }
}
void login::on_pushButton_2_clicked()
{
    login::close();
}

实现功能在代码中均有体现

(5)login.h

login.h文件在login.ui设计完成后,将自动生成,这也是ui界面设计比纯代码设计的优点之一,其他优势还有界面布局等等。但是纯代码编写也有自己的优势,在这里不再赘述。

#ifndef LOGIN_H
#define LOGIN_H

#include <QDialog>

namespace Ui
{
    class login;
}

class login : public QDialog
{
    Q_OBJECT

public:
    explicit login(QWidget *parent = nullptr);
    ~login();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::login *ui;
};

#endif // LOGIN_H

(6)实现

在主函数调用即可
代码及案例如下:代码及案例下载地址https://download.csdn.net/download/qq_43196500/12675327

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值