QTextEdit中插入Gif动画并显示
来源:互联网 发布:驱蚊子软件 编辑:程序博客网 时间:2024/06/07 05:38
早期我设计的IM消息输入框
开始采用的是RichEdit2.0, MFC环境下的. Gif的显示采用在RichEdit中嵌入ActiveX的方式, 现在想想也是很疯狂的事....
后来采用的是Qt Widgets中的QTextEdit, QTextEdit是支持html语言的, 所以可以直接通过调用insertHtml插入静态图片, 动态的Gif图呢?
其实也就是需要循环播放Gif中的多帧图片而已. 而QMovie是可以管理和播放Gif文件的. 官方的例子是这样的:
QLabel label;QMovie *movie = new QMovie("animations/fire.gif");label.setMovie(movie);movie->start();
那么我们可以这么实现, 直接上代码:
//插入Html描述的图片 insertHtml("<img src='" + url.toString() + "'/>"); //判断是否是相同的图片 if (m_lstUrls.contains(url)) { return; } else { m_lstUrls.append(url); } //创建QMovie以显示Gif QMovie* movie = new QMovie(this); movie->setFileName(fileName); movie->setCacheMode(QMovie::CacheNone); m_hasUrls.insert(movie, url); //绑定帧切换信号槽 connect(movie, SIGNAL(frameChanged(int)), this, SLOT(subAnimate(int))); movie->start();
然后每当frameChanged被触发的时候就调用subAnimate
//使用QMovie中的当前帧替换掉富文本中的图片元素QMovie* movie = qobject_cast<QMovie*>(sender());document()->addResource(QTextDocument::ImageResource,m_hasUrls.value(movie), movie->currentPixmap());setLineWrapColumnOrWidth(lineWrapColumnOrWidth());
这样就是循环刷新显示gif动画的每一帧了
需要完整代码请访问 QtWidgetsExamples
阅读全文
0 0
- QTextEdit中插入Gif动画并显示
- QTextEdit 实现gif动画
- Android中显示gif动画
- Android中显示GIF动画
- iOS中显示GIF动画
- PictureBox控件中显示GIF动画(图片)
- 在DELPHI中显示GIF动画
- 如何在Delphi中显示GIF动画
- 在Android中显示GIF动画
- GifView----Android中显示GIF动画
- 在Android中显示GIF动画
- WinForm中正确显示GIF动画
- 在Android中显示GIF动画
- 在Android中显示GIF动画
- 在Android中显示GIF动画
- android中显示Gif动画 GifView
- 在Android中显示GIF动画
- 在Android中显示GIF动画
- java创建线程常见的2种方法
- TCP知识点总结
- java中的set() get() 方法
- jenkins gitlab webhook配置
- javaWeb 内置对象(二)
- QTextEdit中插入Gif动画并显示
- 谈谈8年C++面向对象设计的经验体会
- 使用freemarker导出word文档,支持图文导出
- 每天进步一点点——Linux中的文件描述符与打开文件之间的关系
- React Native在windows环境设置
- swift4.0 从相册中获取图片和拍照
- 小米惹大事了!hr竟然公开表达就业歧视,这种情怀你能接受?
- 数据结构实验之栈与队列四:括号匹配
- SJ中的json 及多维json