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();
}
相关推荐
一个学Java小白2 小时前
系统移植11111
物联网
这张生成的图像能检测吗4 小时前
(论文速读)GMA-Net:面向嵌入式物联网设备的航空发动机损伤检测轻量级实时网络
物联网·目标检测·缺陷检测·轻量化·设备部署
wtblszn6 小时前
光伏封装产线智能管理平台方案
网络·物联网
星恒讯工业路由器6 小时前
分布式光伏站点分散难联网?4G/5G点对多点自组网方案解析
分布式·物联网·5g·分布式光伏·自组网·点对多点通信·4g/5g
zcmodeltech8 小时前
智慧矿山沙盘模型多场景控制系统设计——基于STM32与Modbus RTU的智能开采、无人矿卡、数字孪生全场景联动方案
数据库·stm32·单片机·嵌入式硬件·物联网
2601_953988079 小时前
Ricon组态实时监控 - 毫秒级数据可视化
前端·物联网·数学建模·信息可视化·架构·前端框架
云道轩9 小时前
分析IBM Maximo Monitor 和thingboard在物联网功能上的异同
物联网
h6j7k8l9p010 小时前
蓝牙模块的“人性化”设计:从用户故事看HC-05的易用性与常见陷阱
物联网·蓝牙模块·创客教育·hc-05
TDengine (老段)10 小时前
TDgpt 概览 — AI 增强的时序数据库
大数据·数据库·人工智能·物联网·时序数据库·iot·tdengine
数字新视界20 小时前
2026模块化机房选型指南:行业市场发展趋势、占有率与竞争梯队分析报告解析
大数据·人工智能·物联网·数据中心·微模块机房·模块化机房·冷通道