QT:小项目:登录界面 (下一个连接数据库)

一、效果图


登录后:

二、项目工程结构

三、登录界面UI设计

四主界面

四、源码设计

login.h

复制代码
#ifndef LOGIN_H
#define LOGIN_H

#include <QDialog>

namespace Ui {
class login;
}

class login : public QDialog
{
    Q_OBJECT

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

    void login_init();

private slots:
    void on_pushButton_login_clicked();

    void on_checkBox_eye_stateChanged(int arg1);

private:
    Ui::login *ui;
};

#endif // LOGIN_H

mainwindow.h

复制代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    void login_init();
private slots:
    void on_pushButton_clicked();

    void on_pushButton_login_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

login.cpp

复制代码
#include "login.h"
#include "ui_login.h"
#include "mainwindow.h"
#include <QMessageBox>
#include <QMovie>
#include <QPainter>

login::login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::login)
{
    ui->setupUi(this);

    //初始化页面
    login_init();


}

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

void login::login_init()
{

    //去掉?号
    this->setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
    //更改名称
    this->setWindowTitle("login");

    //更换左上角图标
    this->setWindowIcon(QIcon(":/image/logol.png"));//生成窗口图标

    //设置标题logol
    ui->label_logol->setPixmap(QPixmap(":/image/login_title.png"));
    ui->label_logol->setScaledContents(true);

    //设置样式
    ui->lineEdit_account->setStyleSheet("QLineEdit{border-width:1px;border-radius:4px;font-size:16px;color:black;border:1px solid gray;}"
           "QLineEdit:hover{border-width:1px;border-radius:4px;font-size:16px;color:black;border:1px solid rgb(204,38,200);}");//边框宽度 边框圆角 字体大小 ...   选中边框颜色
    ui->lineEdit_password->setStyleSheet("QLineEdit{border-width:1px;border-radius:4px;font-size:12px;color:black;border:1px solid gray;}"
           "QLineEdit:hover{border-width:1px;border-radius:4px;font-size:12px;color:black;border:1px solid rgb(70,200,50);}");

    //设置密码框-密文登录
    ui->lineEdit_password->setEchoMode(QLineEdit::Password);

    //密码的隐藏和显示
    // 设置样式表(图片为眼睛样式)
    ui->checkBox_eye->setStyleSheet("QCheckBox {spacing: 5px;border: none;background-color: transparent;}"
    "QCheckBox::indicator {width: 20px;height: 20px;border: none;image: url(:/image/close_eye.png);}"
    "QCheckBox::indicator:checked {image: url(:/image/open_eye.png);}");


}

void login::on_pushButton_login_clicked()
{
    if(ui->lineEdit_account->text() == "admin" && ui->lineEdit_password->text() == "123456"){
        this->close();
        MainWindow *h=new MainWindow;
        h->show();
    }else{
        QMessageBox::warning(this,tr("登录失败"),tr("用户名或密码输入错误!"),QMessageBox::Ok);
        ui->lineEdit_account->clear();
        ui->lineEdit_password->clear();
        ui->lineEdit_password->setFocus();
    }

}

void login::on_checkBox_eye_stateChanged(int arg1)
{
    if(arg1){
            ui->lineEdit_password->setEchoMode(QLineEdit::Normal);
         }else{
            ui->lineEdit_password->setEchoMode(QLineEdit::Password);
         }

}

mainwindow.cpp

复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //更改名称
    this->setWindowTitle("");

    //更换左上角图标
    this->setWindowIcon(QIcon(":/image/logol.png"));//生成窗口图标


}

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

main.cpp

复制代码
#include "mainwindow.h"
#include <QApplication>
#include "login.h"
#include "ui_login.h"


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    MainWindow w;
//    w.show();
    login w;
    w.show();
    return a.exec();
}
相关推荐
Quanqiucard7 小时前
电价 15 分钟一调,光伏物联网卡选错,断一次就没依据
物联网
MuMuMu12238 小时前
越华环保集团碳惠小屋:存量场景终端选型,全生命周期成本分析方案
物联网
数字新视界13 小时前
信创认证动环监控在提升机房环境安全与效率中的关键作用
物联网·数据可视化·数据中心基础设施管理·dcim管理系统·数据中心dcim
GIS数据转换器13 小时前
基于CIM的城市智慧供热监管服务平台
java·大数据·开发语言·人工智能·后端·物联网·struts
螺蛳粉 螺蛳粉16 小时前
CDH第七篇:CDH 集成 Kafka 实战:CSD + Parcel 组合拳,先装 ZooKeeper 是铁律
物联网·zookeeper·kafka·消息队列·parcel·cdh集成·csd
weixin_4043806317 小时前
MQTT 上云验收:ESP32-S3 从局域网控灯到远程网页控制
物联网·mqtt·esp32
阿乔外贸日记18 小时前
外贸风控|美国市场7大类欺诈模式解析与风控框架
大数据·人工智能·物联网·microsoft·智能手机
rtu遥测终端机19 小时前
四信全力支撑首批136项重大应用场景落地验证
物联网
ClinicTech1 天前
高校危化品存储的合规技术架构:双人双锁、动态台账与物联网管理
物联网