[Qt] Mask 蒙版

Mask能够覆盖在其他的widget上面,实现一些动态图片的加载效果。下面给出代码。

mask.h

#ifndef MASK_HJ
#define MASK_HJ #include <QWidget>
#include <QStyleOption>
#include <QPainter>
#include <QLabel> class CMask : public QWidget
{
Q_OBJECT
public:
CMask(QWidget *parent = 0);
void m_vSetMessage(QString);
void m_vSetPic(QString strPath);
void m_vSetGif(QString strPath); private:
QLabel *m_infoLabel;
void paintEvent(QPaintEvent*);
}; #endif // MASK_HJ

mask.cpp

#include <QMovie>
#include <QHBoxLayout> CMask::CMask(QWidget *parent) :
QWidget(parent)
{
this->setStyleSheet("background-color: rgba(0, 0, 0, 0);"); m_infoLabel =new QLabel(this);
m_infoLabel->setFont(QFont("黑体", 30));
m_infoLabel->setStyleSheet("background-color : rgba(0, 0, 0, 0);"
"color: #776e65;"
"margin: 0 auto");
m_infoLabel->setAlignment(Qt::AlignCenter); QHBoxLayout *mainLayout = new QHBoxLayout();
mainLayout->setContentsMargins(0, 0, 0, 0);
mainLayout->addWidget(m_infoLabel);
this->setLayout(mainLayout); this->hide();
} void CMask::m_vSetMessage(QString s)
{
m_infoLabel->setText(s);
this->show();
} void CMask::m_vSetPic(QString strPath)
{
m_infoLabel->setPixmap(QPixmap(strPath));
this->show();
}
void CMask::m_vSetGif(QString strPath)
{
QMovie *movie = new QMovie(strPath);
m_infoLabel->setMovie(movie);
movie->start();
this->show();
} void CMask::paintEvent(QPaintEvent *){
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

调用方式

CMask *m_poMask = new CMask(this);
m_poMask->setGeometry(0, 0, 900, 480);
m_poMask->m_vSetGif(":/image/loading.gif");
m_poMask->show();

[Qt] Mask 蒙版的更多相关文章

  1. Unity利用UI的Mask实现对精灵Sprite的遮挡

    例如剔除掉船超出河流的一部分,实现让船只在河流之上显示. 其实是利用UI层的Mask实现遮罩,有些不同的是Mask的图片是用Camera渲染到RenderTexture动态产生的纹理实现的.大概步骤如 ...

  2. 特殊形状图片之遮罩蒙版CSS3-Mask效果

    前不久做了一个项目,需要一个小效果,就是获取用户头像以心形的形状展现在页面上,开始小五想的实现方式是canvas画图或CSS3的clip(剪切),发现都不理想,和设计稿里的图形美观度相差太大,而且实现 ...

  3. 【blade利刃出鞘】一起进入移动端webapp开发吧

    前言 在移动浪潮袭来的时候,小钗有幸进入框架组做webapp框架开发,过程中遇到了移动端的各种坑,也产生了各种激情,就我们公司的发展历程来说 第一阶段:使用传统方式开发移动站点,少量引入HTML5元素 ...

  4. 浅析天猫H5站点

    前言 我们做前端开发的时候,很有可能会做一个竞品分析,比如我就做过去哪儿.艺龙.同程等与携程的移动站点竞品分析,竞品分析的目的一般是技术对比,但是更多的是业务对比,知己知彼,百战不殆:我们同时会借鉴. ...

  5. 【HTML5&CSS3进阶学习01】气泡组件的实现

    前言 气泡组件在实际工作中非常普遍,无论是网页中还是app中,比如: 我们这里所谓气泡组件是指列表型气泡组件,这里就其dom实现,css实现,js实现做一个讨论,最后对一些细节点做一些说明,希望对各位 ...

  6. Golang 绘图技术(image/draw包介绍)

          image/draw 包仅仅定义了一个操作:通过可选的蒙版图(mask image),把一个原始图片绘制到目标图片上,这个操作是出奇的灵活,可以优雅和高效的执行很多常见的图像处理任务. 1 ...

  7. 小程序自定义modal弹窗封装实现

    前言小程序官方提供了 wx.showModal 方法,但样式比较固定,不能满足多元化需求,自定义势在必行~ 老规矩先上图 点击某个按钮,弹出 modal框,里面的内容可以自定义,可以是简单的文字提示, ...

  8. iOS CALayer使用

    CALayer使用 iOS的设备中,我们之所以能看到各种各样的控件.文字.图片,都是Core Animation框架的功劳.它通过图层的合成,最终显示在屏幕上.而今天这篇文章讲的就是Core Anim ...

  9. Lottie在手,动画我有:ios/Android/Web三端复杂帧动画解决方案

      为什么需要Lottie 在相对复杂的移动端应用中,我们可能会需要使用到复杂的帧动画.例如: 刚进入APP时候可能会看到的入场小动画,带来愉悦的视觉享受 许多Icon的互动变化比较复杂多变的时候,研 ...

随机推荐

  1. ANDROID内存优化(大汇总——上)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  2. Ambari安装

    给hadoop用户sudo权限 hadoop ALL=(ALL) NOPASSWD:ALL 建立SSH互信,参考Hadoop HA的搭建中的互信建立 建立相应的下载脚本down.sh nohup wg ...

  3. 在MacOs上配置Hadoop和Spark环境

    在MacOs上配置hadoop和spark环境 Setting up Hadoop with Spark on MacOs Instructions 准备环境 如果没有brew,先google怎样安装 ...

  4. exploit writing tutorial 阅读笔记总结

    近日阅读Corelan Team编写的exploit writing tutorial系列,大致了解了一下原理,记了一些笔记.此系列文章有中文翻译版,在看雪论坛上发表. 英文版地址:https://w ...

  5. sql server 性能计数器

    常规计数器 收集操作系统服务器的服务器性能信息,包括Processor.磁盘.网络.内存 Processor 处理器 1.1 % Processor Time指处理器用来执行非闲置线程时间的百分比.通 ...

  6. NYOJ-744蚂蚁的难题(一)

    这个题都说是水题,楞是没做出来,看了好多题解,感觉这个规律没看懂,后来在讨论区看到了一个题解,感觉有点懂了,写一下自己的理解 首先要明白异或的意思,简单一句话: 同0异1,既然这样,让求区间a,b 中 ...

  7. [HAOI2006]聪明的猴子

    /* 找出能连通所有点的一棵树 是的最大的边最小 很显然就是最小生成树. 堆优化prim. */ #include<iostream> #include<cstring> #i ...

  8. 文本溢出、垂直外边距合并、BFC、hasLayout

    今天学习文本溢出,又遇到了一些小问题,先上图: 关于文本溢出推荐:http://www.cnblogs.com/yzg1/p/5089534.html 从里面学习到单行文本和多行文本溢出, overf ...

  9. 注意 reader["yjID"] == DBNull.Value而不是null

    自己做的项目吃的大亏,由于原始数据yjID这个字段里面什么都没有,所以,这个地方报错,说是字符串格式不支持,应该为DBNull.Value而不是null,DBNull.Value代表数据库(用的acc ...

  10. 关于导出oracle多个表的建表语句DLL,生成.sql语句。

    --('TABLE','LINE','ODS_XX')这里面的表和用户都需要大写.如果表名用户名不大写会报这个错误:对象 "emp" 属于类型 TABLE, 在方案 "s ...