超酷模仿LOL界面用Qt实现连接mysql数据库登陆,并记住账号——附代码下载、mysql驱动
文章目录
- 1 效果
- 2 核心代码
- 3 代码下载
1 效果
有背景音乐,登陆成功背景音乐消失,返回登陆,又有背景音乐。登陆账号和密码为空都会报错,并且重设焦点为空的控件上。账号密码存在mysql数据库中,使用mysqlsql驱动连接,查询库中表验证账号密码。
窗口边框圆角化(后补):
2 核心代码
连接数据库:
static bool createConnection(){//连接第一个数据库//QMYSQLQSqlDatabase db2 = QSqlDatabase::addDatabase("QMYSQL", "connection1");db2.setHostName("127.0.0.1");db2.setUserName("root");db2.setPassword("root");db2.setPort(8889);//test_majiang.dbdb2.setDatabaseName("test_majiang");if (!db2.open()) {//critical(QWidget *parent, const QString &title,//const QString &text,//QMessageBox::StandardButtons buttons = Ok,//QMessageBox::StandardButton defaultButton = NoButton)QMessageBox::critical(0, "Cannot open database","Unable to establish a database connection", QMessageBox::Cancel);return false;}return true;
}
验证密码:
void Login::on_lButton_clicked()
{username = ui->aComboBox->currentText() ;password = ui->pLineEdit->text();//qDebug() << "username" <<username<< endl;//qDebug() << "password" << password <<endl;if(username.isEmpty()){QMessageBox::information(this, tr("请输入账号"),tr("请先输入账号再登陆,谢谢!"),QMessageBox::Ok);ui->aComboBox->setFocus();}else if(password.isEmpty()){QMessageBox::information(this, tr("请输入密码"),tr("请先输入密码再登陆,谢谢!"),QMessageBox::Ok);ui->pLineEdit->setFocus();}else{if(!createConnection()){QMessageBox::information(this, tr("提示"),tr("请先连接网络,谢谢!"),QMessageBox::Ok);}else{QSqlDatabase db = QSqlDatabase::database("connection1");QSqlQuery query(db);QString str = QString("select * from user where account = '%0' and password = '%1'").arg(username).arg(password);query.exec(str);int record = query.size();qDebug() << "record:" << record<< endl;//未连接上数据库返回-1,连接上查询失败返回0,查到返回1if(record == -1 || record == 0){QMessageBox::information(this,tr("提示"),tr("用户名或密码错误!"),QMessageBox::Ok);ui->pLineEdit->clear();ui->pLineEdit->setFocus();}else{QMessageBox::information(this,tr("提示"),tr("登陆成功!"),QMessageBox::Ok);//QDialog::accept();if(isrembered == 1){m_userNameList.push_front(username);writeUsernameList(m_userNameList);}emit mainwidgetShow();ui->aComboBox->clear();music->stop();this->close();}}}
}
边框去圆角化:
QBitmap bmp(this->size());bmp.fill();QPainter p(&bmp);p.setPen(Qt::NoPen);p.setBrush(Qt::black);p.setPen(Qt::transparent);//表示RGBA值为(0,0,0,0)的透明色。p.setRenderHint(QPainter::Antialiasing); // 反锯齿;p.drawRoundedRect(bmp.rect(), 20, 20);setMask(bmp);
读入ini配置中的账号到ComboBox的下拉框中:
QString fileName = QCoreApplication::applicationDirPath() + "/login.ini";IniFile iniUsername(fileName);m_userNameList = iniUsername.getValue(QString("config"),QString("username"));ui->accountComboBox->addItems(m_userNameList);if(m_userNameList.size()>0){username = m_userNameList.at(0);qDebug() <<"m_userNameList.at(0)" << m_userNameList.at(0);}if(isrembered == 1){ui->accountCheckBox->setChecked(true);ui->accountComboBox->setCurrentText(username);}
写入记住的账号到ini文件中:
QString fileName = QCoreApplication::applicationDirPath() + "/login.ini";IniFile iniUsername(fileName);iniUsername.offCoverWrite();iniUsername.onValueDeduplication();iniUsername.onInsertDeduplication();iniUsername.saveValue(QString("config"),QString("username"), values);
动态背景:
QMovie *iconShow = new QMovie(":/image/yasuo.gif");ui->backgroundLabel->setMovie(iconShow);iconShow->start();
循环播放背景音乐:
QMediaPlaylist *playlist = new QMediaPlaylist();playlist->addMedia(QUrl("qrc:/music/LOL.mp3"));playlist->setPlaybackMode(QMediaPlaylist::Loop);backgroundMusic = new QMediaPlayer();backgroundMusic->setPlaylist(playlist);backgroundMusic->play();
3 代码下载
有积分的支持一下,谢谢:
https://download.csdn.net/download/qq_33375598/12345205
没有积分也可以下载的github地址,欢迎start:
https://github.com/fanxinglanyu/QtLogin
超酷模仿LOL界面用Qt实现连接mysql数据库登陆,并记住账号——附代码下载、mysql驱动相关推荐
- Qt使用漂亮的图标和字体(Font Awesome)————附代码实例
文章目录 0 背景 1 使用 1.1 法一 1.2 法二 0 背景 Font Awesome是 Twitter Bootstrap设计的完美图标字体,是css框架的网页字体图标库,在网页中经常出现.它 ...
- Mysql数据库宾馆管理系统_酒店宾馆管理系统 springboot项目 mysql数据库 登陆界面 前端后台 layui.rar...
[实例简介] 酒店宾馆管理系统 配置直接使用intellij idea的springboot打开 等待把dependence下载完毕(配置maven 修改下载源) 配置的properties中数据库需 ...
- 用python写的登录界面的脚本_记录 制作校园网登陆脚本 python编写 附源码
5 importos6 importre7 8 classAOA(object):9 #获取本机IP 10 defget_ip(self):11 try:12 s =socket.socket(soc ...
- C#自作lol登陆界面(功能:连接sql数据库,注册,登陆,修改密码。)
链接:https://pan.baidu.com/s/15tpyA31eLOKj3gSvOpHSYw 提取码:zii6 GIF动图太大了,哪也上传不了..只能百度了..辛苦各位大佬..看看效果图. 下 ...
- 使用jQuery开发一个超酷的倒计时效果
转自:http://www.gbtags.com/technology/jquerytutorial/20110105countdownjquery/ 使用jQuery开发一个超酷的倒计时效果 日期: ...
- linux mysql 开发环境_RedHat Linux下QT平台MySQL数据库开发环境配置
This doucment is about how to add MySQL driver into QT and about database connections 由于之前安装RedHat的时 ...
- linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置
This doucment is about how to add mysql driver into QT and about database connections 由于之前安装RedH ...
- Linux下QT平台Mysql数据库开发环境配置
This doucment is about how to add mysql driver into QT and about database connections 由于之前安装RedH ...
- QT五子棋游戏课设及源码(连接mysql数据库含打开并运行程序的教程)
gdut大一下学期c++课设(得分:95) 实验报告及源码压缩包百度云下载: 链接:https://pan.baidu.com/s/1zO5ofMz09fiWihxCcZcFbg 提取码:ddav 首 ...
最新文章
- Nutch之初体验(1)
- os-cocos2d游戏开发基础-进度条-开发笔记
- 多少个没收到会收敛_做多少个俯卧撑算是合格?坚持做俯卧撑,会有什么变化?...
- java实现把一个大文件切割成N个固定大小的文件
- 线程的基本协作和生产者消费者
- Java行为参数化(一)
- 1051 mysql 主从_mysql配置主从读写分离的一些想法
- 知识图谱入门 , 知识问答
- java 下划线_Java SE 9:“ _”(下划线)更改
- linux网络客户端命令
- Python爬虫——selenium爬取当当畅销图书排行
- Redis Lua脚本好处、Redis执行Lua的两种方式、Redis缓存Lua脚本、Redis Lua原子性验证、Lua脚本IP限流、Lua脚本自乘
- 学java编程需要安装什么软件?
- 火狐浏览器 + 插件scrapbook 制作仿站工具
- 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第五章
- 济南月薪一万是什么水平?
- 给div元素设置背景颜色
- MongoDB循序渐进之[入门]
- 外文文献翻译工具,4款可供选择!
- cdn.jsdelivr.net无法访问的解决方法