Qt setMask 窗口

原创 2013年12月05日 16:30:04

根据文档:

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);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

QT:不规则窗口的实现

主要思路: 1:将窗体设为Qt::FramelessWindowHint(去掉标题栏)。 2:用一幅有部分区域是透明的图片作为程序的界面,并将图片透明的地方设为穿透。 3:重载程序的鼠标事件。 ...

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

// In this function, we can get the height and width of the current widget void Widget::resizeEvent...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

使用setmask实现不规则窗体

setmask为调用它的空间添加一个遮罩,在这个遮罩范围之外的都没有显示,但是窗体大小不会变化。 #ifndef SHAPEWIDGET_H #define SHAPEWIDGET_H #incl...

Qt 之 QLabel 设置面罩

效果图QLabel 是Qt 中的标签类,一般情况我们只是设置文字描述,但是QLabel不仅仅只是显示一些文字介绍那么简单。QLabel支持Html中标签的使用,同时可以设置普通图片和动态图。这里简单介...

QT不规则窗体图形(代码+详解)

QT不规则窗体图形(代码+详解) 时间 2013-05-18 10:52:43  CSDN博客推荐文章 原文 http://blog.csdn.net/panfengyun12345/artic...

setMask()与实现不规则形状的窗口

在Qt中有两种方法来实现不规则形状的窗口 1.可以设置QWidget的窗口属性Qt::WA_TranslucentBackground为true来实现。但是利用这个属性有很大的限制。在w...

QGraphicsItem分组

QGraphicsItem 支持很多特性,例如:鼠标、键盘事件、拖放、分组、碰撞检测等。通常在演示工具中使用分组,当用户想要将多个较小的 items 组合成一个大的 item 时,以简化 items ...

让QGraphicsItemGroup中的item处理自己的事件

QGraphicsItem 分组比较简单,但在分组之后无法捕获 group 中 QGraphicsItem 的相关事件(例如:鼠标事件、键盘事件),实际接受消息对象为 QGraphicsItemGro...

自定义QGraphicsItem选中样式

在 Scene 中添加 QGraphicsItem 后,当选中该 item 时,会看到边缘区域出现虚线,下面我们来讲解如何去掉虚线并自定义选中样式。

《Qt 实战一二三》

“我们来自Qt分享&&交流,我们来自QML分享&&交流”,不管你是笑了,还是笑了,反正我们是认真的。我们就是要找寻一种Hold不住的状态,来开始每一天的点滴分享,我们是一个有激情,有态度的部队。 但...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)