Qt实现 QLabel显示文本与图片、动图
QLabel概念:
在Qt中,QLabel类用于文本或图片(包括动图gif)、视频的显示,并不提供用户交互功能,
如果需要交互,比如响应鼠标事件,根据面向对象的里氏替换原则,子类必须能够替换它们的父类,同样Qt也支持该理念,所以可以新建一个类继承自QLabel,再重写鼠标事件,
子类此时通过继承,就具有了父类QLabel的功能,同时也具有了自己的事件,不过本文讨论的是Qt实现 QLabel显示文本与图片,不再引申其他。
一、在界面显示与获取文本:
ui->label->setText("hello qt"); //设置文本ui->label->text(); //获取文本
通过setText()函数设置需要显示的文本,并且可以通过text()函数获取当前被设置的文本。
二、在界面显示图片:
显示图片通常有两种,一个是QPixmap类,一个是QImage类
下面看看二者主要的不同点:
1、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计。而QImage主要是为图像I/O、图片访问和像素修改而设计的。
2、QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,QImage使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果
3、目前的Qt会把QPixmap都存储在graphics memory中,QImage是存储在客户端的,是独立于硬件的。在 X11, Mac 以及 Symbian平台上,QPixmap 是存储在服务器端,而QImage则是存储在客户端,在Windows平台上,QPixmap和QImage都是存储在客户端,并不使用任何的GDI资源。
4、由于QImage是独立于硬件的,也是一种QPaintDevice,因此我们可以在另一个线程中对其进行绘制,而不需要在GUI线程中处理,使用这一方式可以很大幅度提高UI响应速度。
一、使用QImage在QLabel上显示图片。绝对路径方式
QImage *image=new QImage;
image->load("G:/Qt_coding/QLabelTest/1.png"); //绝对路径
//image->load("G:\\Qt_coding\\QLabelTest\\1.png"); //绝对路径的另一种方式
ui->label->setPixmap(QPixmap::fromImage(*image));
二、使用QPixmap显示图片。当前路径和相对路径方式
QPixmap *photo=new QPixmap;
photo->load("./test.png"); //表示当前路径 注意Qt的当前路径在exe的上一层目录 不是代码文件的文件夹 这里和C++不一样,//photo->load("./../image/1.png"); //相对路径方式 ./可以忽略ui->label->setPixmap(*photo);//图片自适应label大小
ui->label->setScaledContents(true);//修改label大小
ui->label->resize(200,300);
三、使用QMovie显示gif
movie.setFileName("G:/Qt_coding/QLabelTest/3.gif"); //已经在类中声明了movie
ui->label->setMovie(&movie);
movie.start();
如果使用QImage或者QPixmap显示gif,图片是动不了的,所以使用的是Qmovie类来实现动图的播放
这里通过start()函数来播放gif动画。可以通过stop()停止gir的播放,
或者使用setPaused(bool),设置为true用来暂停动画的播放,false恢复播放。
Qt实现 QLabel显示文本与图片、动图相关推荐
- QT任务009——基于QPainter 类,添加图片+动图(基于QMovie),并随鼠标移动——samp_8_2_test
一 任务描述 1.绘制五角星 2.在画布背景下,添加图片+gif动图 3.鼠标点击会使得图片 / 动图移动 二 [绘制五角星]完成过程 1.创建基于QWidget,窗口,先不在UI界面 放置任何组件 ...
- 给MFC添加图片,动图,添加背景音乐(打包大放送)
最近突然有了一种想用MFC做贺卡的想法,做成一个.exe程序,让被祝贺的人可以用电脑在任何位置打开观看,这就要求所使用资源必须添加至MFC工程,下面的方法都是本人测试过的,希望对你有所帮助呦! 1添加 ...
- 用计算机打出惊雷这首,惊雷表情包图片-惊雷表情包图片动图大全高清免费分享 v1.0预约_手机乐园...
软件简介 惊雷表情包图片动图大全高清免费分享这里汇聚了当下十分火爆的喊麦表情包图片,不仅图片十分搞笑,配上的文字更是点睛之笔,不仅幽默风趣,还非常符合沙雕的气质,下面就为整理了十分全面的惊雷喊麦图片, ...
- canvas——绘制图片——动图制作
图片: drawImage():将原图片像素的内容复制到画布上: 第一个参数是源图片,可以是img元素或Image构造函数创建的屏幕外图片对象: 三个参数时: 指定图片绘制的x.y坐标: 五个参数时: ...
- vue-quill-editor显示文本、图片、视频,踩过的坑,比如register错,imports的错,还有module_9的错
报错图片: 一.先下载依赖 1.npm install vue-quill-editor --save 2.npm install quill --save 3.npm install quill-i ...
- 用Qt将一组静态连续图片制作成动图(定时器和QPixmap实现)
效果图 由于视频大小限制和录制软件的原因,此图效果可能不是很好,在工程运行生成的Dialog窗口中,效果是非常不错的 项目文件 建立项目后,找到项目路径,建立新的文件夹,命名时不要出现中文,将静态连续 ...
- iOS UI篇——轮播图Banner图片动图混合无限轮播
KJBannerView 介绍一下自己之前写的无限轮播图库,无限自动循环滚动,大家有什么需求可以给我留言,持续更新中- Demo地址:KJBannerViewDemo 功能介绍 KJBannerVie ...
- Qt学习之显示类的控件(QLabel、QTextBrowser、QGraphicsView、QCalendarWidget、QWebView、QProgressBar、QOpenGLWidget)
本文转自:<Qt编程指南> 作者:奇先生 Qt编程指南,Qt新手教程,Qt Programming Guide 5.5 显示类的控件 本节显示类控件是指作为显示用途的控件,本 ...
- QLabel显示多行文本
问题: QLabel显示文本过长时会被截断. 解决办法: 在设计器里找不到设置的地方,可以直接用代码设置 ui->label2.setWordWrap(true);
最新文章
- python requests 示例_python的requests模块实现登陆示例
- 浅析网站页面加载速度如何提升?
- 跨域加了header也解决不了?
- 【HDU6662】Acesrc and Travel【树形DP】
- 【算法】一个简单的随机森林(RF)原理
- C++ vector中的resize,reserve,size和capacity函数讲解
- 通过tomcat日志定位错误
- 关于Excel的查询,可以通过格式查询(比如查找指定颜色的单元格)。
- .Net客户端应用程序开发
- TV直播app TV版 超级直播 空壳 可玩性强 带EPG 带回看 带自定义 定制可带自定义协议等
- 如何解决上班下午3:00发困的事情
- 华为智慧屏鸿蒙系统2.0,搭载鸿蒙2.0系统?华为即将推出入门级智慧屏
- 计算机 文笔不好的论文,文笔差怎么写出好文章
- 北京科技大学 数值计算方法实验代码
- 软考数据库工程师2021下午题@故障恢复解析
- 【期货龙虎榜量价分析】红枣PVC创新高,多空大幅增仓博弈激烈
- aaa_base is needed by MySQL-server-5.5.23-1.sles11.x86_64
- Verilog 语言 ——计数器
- python绘制饼状图图例_Python图表绘制很简单,一文带你学会如何生成带图例的饼图...
- Linux永久修改系统时间,修改硬件时间