You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.7 KiB

#include "login.h"
#include "ui_login.h"
#include <QMessageBox>
#include "signal.h"
#include <QSqlQuery>
#include <QString>
#include <QDebug>
#include "widget.h"
#include <QGraphicsDropShadowEffect> //设置阴影
#include <QMovie> // 包含QMovie的头文件
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QUrl>
login::login(QWidget *parent) : QDialog(parent),
ui(new Ui::login)
{
ui->setupUi(this);
sign = new sign_in;
w = new Widget;
QMediaPlaylist *musicList = new QMediaPlaylist(this); // 创建音乐播放列表
musicList->addMedia(QUrl::fromLocalFile("D:/sparking111dui/111/park/yun.wav")); // 添加本地音乐文件
QMediaPlayer *soundPlayer = new QMediaPlayer(this); // 创建音乐播放器
soundPlayer->setPlaylist(musicList); // 设置音乐播放列表
soundPlayer->play(); // 播放音乐
// 如果只有一首音乐,设置为循环播放
musicList->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
soundPlayer->setVolume(80);
//插入图片
QPixmap house(":/house.jpg");
ui->label_3->setPixmap(house);
//设置阴影
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(-3, 0);
shadow->setColor(QColor("#888888"));
shadow->setBlurRadius(30);
ui->label_3->setGraphicsEffect(shadow);
//动图
QMovie *movie = new QMovie(":/sun.gif");
ui->label_2->setMovie(movie);
movie->start();
connect(ui->pass, &QLineEdit::returnPressed, this, &login::on_login_2_clicked);
this->setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
}
login::~login()
{
delete ui;
delete sign;
delete w;
}
void login::on_exit_clicked()
{
close();
}
void login::on_login_2_clicked()
{
QString username = ui->name->text();
QString userpwd = ui->pass->text();
// 使用在 main 中创建的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes);
return;
}
QString userQuery = QString("select * from user where name='%1' and pass='%2' ").arg(username).arg(userpwd);
QSqlQuery query(db); // 使用 db 对象来执行查询
if (query.exec(userQuery) && query.next()) {
w->show();
this->hide();
} else {
QMessageBox::warning(this, tr("警告!"), tr("用户名或密码错误!"), QMessageBox::Yes);
ui->name->clear();
ui->pass->clear();
ui->name->setFocus();
}
}
void login::on_pushButton_clicked()
{
sign->exec();
}