关闭

Qt setMask 窗口

6259人阅读 评论(0) 收藏 举报
分类:

根据文档:

1:void QWidget::setMask(const QBitmap & bitmap);

2:void QWidget::setMask(const QRegion & region);

所以可以用透明图片和自定义区域设置

如:

1:透明图片设置,如果需要显示图片,还需将图绘制添加 paint;


void paintEvent(QPaintEvent * pQPaintEvent)
{
QPixmap pixmap("./t1.png");
QPainter paint1(this);
paint1.drawPixmap(0,0,pixmap.width(),pixmap.height(), pixmap );
}

void resizeEvent(QResizeEvent * event )
{
QPixmap pixmap("./t.png");
setMask( pixmap.mask() );
}


2: 设置原型窗口;

void resizeEvent(QResizeEvent * event )
{
  int side = qMin(width(), height());
  QRegion maskedRegion(width() / 2 - side / 2, height() / 2 - side / 2, side,
  side, QRegion::Ellipse);
  setMask(maskedRegion);

}

0
0
查看评论

使用setmask实现不规则窗体

setmask为调用它的空间添加一个遮罩,在这个遮罩范围之外的都没有显示,但是窗体大小不会变化。 #ifndef SHAPEWIDGET_H #define SHAPEWIDGET_H #include #include #include #include #include clas...
  • zhx6044
  • zhx6044
  • 2013-11-30 20:42
  • 4060

Qt 之 QLabel 设置面罩

效果图QLabel 是Qt 中的标签类,一般情况我们只是设置文字描述,但是QLabel不仅仅只是显示一些文字介绍那么简单。QLabel支持Html中标签的使用,同时可以设置普通图片和动态图。这里简单介绍一下如何为QLable设置面罩。代码很简单,通过设置不同形状的面罩可以达到不同的效果。1、设置动态...
  • GoForwardToStep
  • GoForwardToStep
  • 2016-08-01 16:39
  • 2271

Qt编写的遮罩层窗体

PS:亲测有效! 转:http://www.qtcn.org/bbs/read-htm-tid-62394.html 最近接了个私活,需要在弹框的窗体背后遮罩原有主窗体,使得突出显示弹窗窗体,突然想到之前写过一个全局截屏的东东,原理一致,拿来改改。 优点:只需要引入一个头文件和...
  • u011430225
  • u011430225
  • 2017-01-19 15:11
  • 1712

[Qt] Mask 蒙版

[Qt] Mask 蒙版Mask能够覆盖在其他的widget上面,实现一些动态图片的加载效果。下面给出代码。mask.h#ifndef MASK_HJ #define MASK_HJ#include <QWidget> #include <QStyleOption> #inc...
  • mdgsf
  • mdgsf
  • 2015-09-26 21:06
  • 266

教你如何用Qt做透明的窗体,setMask,Qt,Opacity

// In this function, we can get the height and width of the current widget void Widget::resizeEvent(QResizeEvent *) {     ...
  • zzwdkxx
  • zzwdkxx
  • 2014-06-11 10:38
  • 1073

QRegion

描述说明QRegion为painter指定一个裁剪区域。 QRegion 是使用 QPainter:setClipRegion ()来限制画图区域。 还有一个 QWidget:repaint()函数,它接受一个 QRegion 参数。QRegion 是最大化降低屏幕区域被repaint更新的最好工具...
  • aucaser
  • aucaser
  • 2015-11-26 11:05
  • 1458

Qt QRegion裁剪区域实现部分区域刷新 避免闪烁区域太大

QRegion为painter指定一个裁剪区域。  QRegion 是使用 QPainter:setClipRegion ()来限制画图区域。 还有一个 QWidget:repaint()函数,它接受一个 QRegion 参数。QRegion 是最大化降低屏幕区域被repaint更新的最好...
  • u013255206
  • u013255206
  • 2017-04-21 11:17
  • 946

Qt完美实现切图

Qt完美实现切图
  • qq_16952303
  • qq_16952303
  • 2016-07-29 20:23
  • 999

QT自定义窗口(无边框,自由拖动)

QT自定义窗口(无边框,自由拖动)
  • hiwubihe
  • hiwubihe
  • 2016-06-19 16:24
  • 9427

tableView滑动很卡的原因

最近发现项目中mou列表在滑动时很卡,
  • u010571113
  • u010571113
  • 2014-07-16 19:30
  • 1417
    个人资料
    • 访问:1810468次
    • 积分:19353
    • 等级:
    • 排名:第537名
    • 原创:346篇
    • 转载:298篇
    • 译文:6篇
    • 评论:172条
    最新评论