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

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 如果转载,需要获得作者授权。保留追究法律责任的权力。

相关文章推荐

使用setmask实现不规则窗体

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

Qt 之 QLabel 设置面罩

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

Qt完美实现切图

Qt完美实现切图

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

// In this function, we can get the height and width of the current widget void Widget::resizeEvent...
  • zzwdkxx
  • zzwdkxx
  • 2014年06月11日 10:38
  • 915

iOS 利用mask layer 使view中扣掉一块露出下边的view

#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width #define SCREEN_HEIGHT [[UIScreen main...
  • Dwarven
  • Dwarven
  • 2015年01月07日 14:33
  • 18215

Qt Quick里的图形效果(Graphical Effects)

Graphical Effects ,姑且叫作图形效果吧。它提供了 Blend 、 Color 等好几类效果,有些类别下面又有多种不同的效果……在界面引入图形效果,能够让我们的UI更具吸引力……...
  • foruok
  • foruok
  • 2015年01月14日 07:07
  • 9630

Qt编写的遮罩层窗体

PS:亲测有效! 转:http://www.qtcn.org/bbs/read-htm-tid-62394.html 最近接了个私活,需要在弹框的窗体背后遮罩原有主窗体,使得突出显...

QT中结合实际例子谈谈QTableWidget中布局控件的方法

每做一个控件,就会慢慢熟悉QT中的一个控件类,这次在用QTableWidget做一个标记点控件的时候,因为不熟悉有些东西花了大量的时间来查阅资料和学习,边学边做的确挺令人头疼的。 下面是用Qtabl...
  • Enter_
  • Enter_
  • 2016年01月22日 20:40
  • 3693

QT中常见的问题总结系列

本人觉得这篇文章超级棒,简直就是神文章 QtCreator中使用的是MinGW进行编译的,所以在windows下如果想要下载QtCreator就需要下载对应mingw的版本,而不是vs的,否...

QT 任意区域截图

setWindowFlags(Qt::WindowStaysOnTopHint|Qt::ToolTip); setWindowState(Qt::WindowActive|Qt::WindowFul...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt setMask 窗口
举报原因:
原因补充:

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