在这里交代一下实现该功能的前提情况:云数据库中存储的图片不是blob类型的,而是经过base64转码后的text数据类型,在这里还涉及了base64的解码。

mainwindow.h:

public:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();QSqlQuery query;QByteArray img_text[4];     //未解码的QByteArrayQByteArray img_base64[4];   //解码的QByteArrayQPixmap selected_photo[4];  //图片数组int curIndex;QPixmap pixmap[4];      //图片数组void DatabaseConnection();          //连接云数据库void DownloadImage();           //从数据库下载图片void paintEvent(QPaintEvent *event);          //进行每一张图片的导入平铺绘制void timerEvent(QTimerEvent *event);          //对每张图片按设定时间重复调用,达到动图效果void initPixmap();          //对每张图片进行初始化,将其导入Pixmap[64]中

mainwindow.cpp:

MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);DatabaseConnection();DownloadImage();startTimer(150);curIndex = 0;initPixmap();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::DownloadImage(){query.prepare("select * from pro_action where pro_id = :id order by record_id desc limit 0,3");     //从云数据库的pro_action表中选择pro_id为3且根据record_id排序的最新3张图片query.bindValue(":id","3");query.exec();while(query.next()){
//        qDebug() << query.value(5).toString();    //经64转码的图片是不能直接qDebug出来的,需要先转为QByteArray再64解码for(int i=0; i<3; i++){img_text[i] = query.value(5).toByteArray();     //表中的图片是经过base64转码后的text数据类型,需要先转换成QByteArray型img_base64[i] = QByteArray::fromBase64(img_text[i]);    //再通过fromBase64()对QByteArray进行base64解码selected_photo[i].loadFromData(img_base64[i]);          //将解码后的图片存进QPixmap数组以供后续展示}}
}//进行每一张图片的导入平铺绘制
void MainWindow::paintEvent(QPaintEvent *event){QPainter painter(this);QRect q(0,0,300,400);QRect q2(100,100,300*2,400*2);painter.drawPixmap(q2,pixmap[curIndex],q);
}//对每张图片按设定时间重复调用,达到动图效果
void MainWindow::timerEvent(QTimerEvent *event){curIndex ++;if(curIndex >= 4){curIndex = 0;}repaint();
}//对每张图片进行初始化,将其导入Pixmap[4]中
void MainWindow::initPixmap(){for(int i=0; i<4; i++){qDebug() << "selected_photo:" << selected_photo[i];QPixmap map(selected_photo[i]);pixmap[i] = map;}
}

QT——从阿里云数据库中读取特定图片做成动图相关推荐

  1. php从数据库中读取特定的行

    有的时候我们需要从数据库中读取特定的数据,来检验用户的输入,这个时候需要执行的sql语句是: select * from table_name where id='num'; 需要执行这样的一个语句. ...

  2. php如何逐条读取数据库,php从数据库中读取特定的行(实例)

    有的时候我们需要从数据库中读取特定的数据,来检验用户的输入,这个时候需要执行的sql语句是: select * from table_name where id='num'; 需要执行这样的一个语句. ...

  3. c#form+mysql储存读取图片_C#从SQL server数据库中读取l图片和存入图片

    本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类.BinaryReader把图片读成字节的形式,赋给一 ...

  4. C#从SQL server数据库中读取l图片和存入图片

    一.从图片中获得二进制值的基本方法:Image.Save 方法 (String, ImageFormat) 这会将保存 Image 写入指定的文件中指定的格式. 命名空间: System.Drawin ...

  5. wdcp mysql数据库无法链接_MySQL数据库之阿里云服务器中centos7 解决wdcp中不能远程访问mysql服务的问题...

    本文主要向大家介绍了MySQL数据库之阿里云服务器中centos7 解决wdcp中不能远程访问mysql服务的问题 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.检查mys ...

  6. 阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中

    环境介绍: CentOS 7.5 Mysql 5.7 percona-xtrabackup-24 注意事项 操作系统中已安装数据恢复工具Percona XtraBackup,您可以从Percona X ...

  7. 阿里云数据库POLARDB技术沙龙火热报名中,李飞飞,曹伟 众大神齐到场,200个席位先到先得!...

    本次沙龙将结合RDS云数据库技术架构的演化,分享阿里云自研云原生数据库的产品架构和技术创新点,并深度剖析POLARDB在SQL并发性能.多活高可用.读写分离延迟.四维弹性.快照备份和查询加速等应用场景 ...

  8. 微信小程序云开发如何实现读取和下载excel文件导入数据到云数据库中?简单好理解

    一般我们在开发中会遇到通过excel文件一键导入数据的模板操作,我们在微信小程序中可以使用node-xlsx插件来解析excel文件的内容变成以json格式的数据返回. 在处理该操作的云函数中下载安装 ...

  9. 媒体声音 | 阿里云王伟民:阿里云数据库的策略与思考

    简介: DTCC 2021大会上,阿里云数据库事业部 产品与解决方案部总经理 王伟民(花名:唯敏)发表主题演讲<云原生数据库2.0,一站式全链路数据管理与服务>,并接受IT168企业级&a ...

最新文章

  1. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、使用set_minor_locator函数指定坐标轴次刻度数值倍数(MultipleLocator)
  2. 软件开发本质论——自然之路
  3. 优秀简历要遵循哪些规则
  4. Python连接Mysql数据库SQL注入问题的解决
  5. 同一事务多次加for_谈谈事务隔离级别,以及悲观锁和乐观锁的原理和应用场景...
  6. 罗永浩直播带货花落谁家?不止是价高者得之
  7. JAVA 10(多线程)
  8. ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程
  9. python时间去掉t_Python的set集合详解
  10. js添加事件 attachEvent 和addEventListener的用法
  11. SSH家政服务系统设计与实现答辩PPT免费下载
  12. Java:PULLXML解析XML(内附jar包链接)
  13. mybatis数据输入
  14. python输出生日程序_python生日算法
  15. 内网信息收集小知识(一)
  16. vue3.0组合式api语法使用总结
  17. CS144 计算机网络 lab1
  18. 工行二维码支付接口及回调接口
  19. LINGO学习笔记01
  20. [综述] 细粒度图像分析2019

热门文章

  1. 半导体器件物理【13】载流子输运现象 —— 霍尔效应
  2. 万万没想到,乌克兰国防军队某系统的账号和密码分别是admin 和 123456!
  3. 金山词霸2005,郁闷……
  4. iOS面试:主线程如何进行阻塞?
  5. Buildroot 打包文件系统流程跟踪
  6. 9001的内审员证书怎么获得?内审员有那些作用?
  7. 【网络安全】新浪微博旗下域名被301跳转至腾讯微博
  8. 真品篮球鞋与仿真鞋的分别
  9. 用python可以做哪些有趣的事_可以用 Python 来干些什么有趣的事?
  10. 计算机网络基础 第一章