#include "login.h" #include "ui_login.h" #include #include "signal.h" #include #include #include #include "widget.h" #include //设置阴影 #include // 包含QMovie的头文件 #include #include #include 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(); }