龙空技术网

Qt如何实现界面的透明效果?

程序员fearlazy 713

前言:

此刻咱们对“qt做界面的效果”大体比较讲究,朋友们都需要了解一些“qt做界面的效果”的相关内容。那么小编也在网摘上搜集了一些对于“qt做界面的效果””的相关文章,希望看官们能喜欢,看官们一起来了解一下吧!

Qt提供了实现透明效果的类QGraphicsOpacityEffect,它的基类是QGraphicsEffect。

QWidget和QGraphicsItem要实现特效使用setGraphicsEffect函数,参数为QGraphicsEffect的指针。

QGraphicsOpacityEffect提供了两个设置函数:

setOpacity设置不透明度,默认值为0.7 可设置范围为0到1,值越小越透明。setOpacityMask设置透明蒙版,用于指定界面中哪些地方透明,参数是一个画刷(QBrush)。

例:在widget界面上拉三个按钮,为三个按钮设置不同的透明效果

第一个按钮不设置阴影效果;第二个按钮的不透明度设置为0.3;第三个设置透明蒙版为一个线性渐变的画刷。其中渐变的位置使用的是按钮的本地坐标系。

从图中可以看出第三个按钮上下两部分更透明,对应线性渐变setColorAt(0.0,Qt::transparent)和setColorAt(1.0,Qt::transparent)。虽然在0.5的位置设置颜色为红色,但实际显示中并没有红色。可见画刷的颜色并不重要,关键在于颜色的alpha值。

文章来自个人博客

标签: #qt做界面的效果