文章目录

  • 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驱动相关推荐

  1. Qt使用漂亮的图标和字体(Font Awesome)————附代码实例

    文章目录 0 背景 1 使用 1.1 法一 1.2 法二 0 背景 Font Awesome是 Twitter Bootstrap设计的完美图标字体,是css框架的网页字体图标库,在网页中经常出现.它 ...

  2. Mysql数据库宾馆管理系统_酒店宾馆管理系统 springboot项目 mysql数据库 登陆界面 前端后台 layui.rar...

    [实例简介] 酒店宾馆管理系统 配置直接使用intellij idea的springboot打开 等待把dependence下载完毕(配置maven 修改下载源) 配置的properties中数据库需 ...

  3. 用python写的登录界面的脚本_记录 制作校园网登陆脚本 python编写 附源码

    5 importos6 importre7 8 classAOA(object):9 #获取本机IP 10 defget_ip(self):11 try:12 s =socket.socket(soc ...

  4. C#自作lol登陆界面(功能:连接sql数据库,注册,登陆,修改密码。)

    链接:https://pan.baidu.com/s/15tpyA31eLOKj3gSvOpHSYw 提取码:zii6 GIF动图太大了,哪也上传不了..只能百度了..辛苦各位大佬..看看效果图. 下 ...

  5. 使用jQuery开发一个超酷的倒计时效果

    转自:http://www.gbtags.com/technology/jquerytutorial/20110105countdownjquery/ 使用jQuery开发一个超酷的倒计时效果 日期: ...

  6. linux mysql 开发环境_RedHat Linux下QT平台MySQL数据库开发环境配置

    This doucment is about how to add MySQL driver into QT and about database connections 由于之前安装RedHat的时 ...

  7. linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置

    This doucment is about how to add mysql driver into QT and about database connections     由于之前安装RedH ...

  8. Linux下QT平台Mysql数据库开发环境配置

    This doucment is about how to add mysql driver into QT and about database connections     由于之前安装RedH ...

  9. QT五子棋游戏课设及源码(连接mysql数据库含打开并运行程序的教程)

    gdut大一下学期c++课设(得分:95) 实验报告及源码压缩包百度云下载: 链接:https://pan.baidu.com/s/1zO5ofMz09fiWihxCcZcFbg 提取码:ddav 首 ...

最新文章

  1. Nutch之初体验(1)
  2. os-cocos2d游戏开发基础-进度条-开发笔记
  3. 多少个没收到会收敛_做多少个俯卧撑算是合格?坚持做俯卧撑,会有什么变化?...
  4. java实现把一个大文件切割成N个固定大小的文件
  5. 线程的基本协作和生产者消费者
  6. Java行为参数化(一)
  7. 1051 mysql 主从_mysql配置主从读写分离的一些想法
  8. 知识图谱入门 , 知识问答
  9. java 下划线_Java SE 9:“ _”(下划线)更改
  10. linux网络客户端命令
  11. Python爬虫——selenium爬取当当畅销图书排行
  12. Redis Lua脚本好处、Redis执行Lua的两种方式、Redis缓存Lua脚本、Redis Lua原子性验证、Lua脚本IP限流、Lua脚本自乘
  13. 学java编程需要安装什么软件?
  14. 火狐浏览器 + 插件scrapbook 制作仿站工具
  15. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第五章
  16. 济南月薪一万是什么水平?
  17. 给div元素设置背景颜色
  18. MongoDB循序渐进之[入门]
  19. 外文文献翻译工具,4款可供选择!
  20. cdn.jsdelivr.net无法访问的解决方法

热门文章

  1. 虎牙弹幕器(自动发弹幕,导入导出文件,检测是否发出,自动化工具加虎牙人气)(具有图形化界面)
  2. 记录下数据路自带的几个查询功能,以备不时之需
  3. jquery博客前端开发收集一份离职信以备不时之需
  4. word多级列表不按照大纲级别编排
  5. RDP连接错误(CredSSP)
  6. 让 li 标签中的 a 标签内容铺满
  7. 淘宝官方订单详情、交易、商品、物流、插旗接口说明
  8. 鹰式价差matlab,什么是鹰式价差策略?-投资江湖
  9. RTL8211 uboot 模式下4芯网线对接千兆如何协商成百兆
  10. 深度学习基础论文学习