一、登录界面——仿照QQ登录界面制作
- 全部代码展示
主程序主要是对界面的美化以及数据库的连接和表格的创建。
![](https://i-blog.csdnimg.cn/blog_migrate/934d9c4e3c1e61029b8a2ed45a04f607.png)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMovie>
#include <QPalette>
#include <QSqlError>
#include <QMessageBox>
#include <QDebug>
#include <QPushButton>
#include<QIcon>
#include <QMouseEvent>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//设置图标
//路径: 冒号+前缀+路径
this->setWindowIcon(QIcon(":/res/tbqq"));
setFixedSize(640,500);
//去掉边框
setWindowFlags(Qt::WindowType::FramelessWindowHint);
//背景透明
setAttribute(Qt::WA_TranslucentBackground);
ui->pushButton_xx->setFlat(true);//就是这句实现按钮透明的效果
ui->pushButton_min->setFlat(true);//就是这句实现按钮透明的效果
ui->pushButton_zczh->setFlat(true);//就是这句实现按钮透明的效果
ui->pushButton_sz->setFlat(true);
//给labtop设置动画
QMovie * movie = new QMovie(":/res/gifLabel.gif");
ui->labeldtu->setMovie(movie);
movie->start();
//设置头像为圆形
ui->label_tx->setMask(QRegion(ui->label_tx->rect(),QRegion::RegionType::Ellipse));
//[1] 根据数据库类型来连接数据
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("user.db");
//[2] 打开数据库
if(!db.open())
{
qDebug()<<"open error"<<db.lastError();
}else
{
qDebug()<<"open sucess";
}
//[3] 根据需求,创建数据库所需要表
QSqlQuery query;
#if 0
QString sqlCreateTable = QString("create table user_table(user integer primary key autoincrement,"
"password int);");
if(!query.exec(sqlCreateTable))
{
qDebug() << "create table" << db.lastError();
}
QString sqlInsert = QString("insert into user_table(user,password) "
"values(1,1);");
if(!query.exec(sqlInsert))
{
qDebug() << "Error insert into data" << db.lastError();
}
#endif
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_dl_clicked()//登录
{
//用户登录:查询数据
connect(ui->pushButton_dl,&QPushButton::clicked,this,[=]()
{
//接受用户输入: