原创

Qt的半透明方法总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://shazhenyu.blog.csdn.net/article/details/52624844

如果是QWidget,可以重写了它的void paintEvent(QPaintEvent *);事件

如果是QGraphics,可以重写它的void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);事件

如果是QML,可以直接设置颜色的rgba值


方法一:(适合自己绘画的图形)
Qt的半透明方法总结

QPainter painter(this);

this->setAttributte(Qt::WA_TranslucentBackground, true);//关键

painter.setBrush(QColor(0,0,0,100));//最后一位是设置透明属性(在0-255取值)

painter.drawRect(0,0, this->widh(), this->height());

 

这样就画了一个从原点到窗口大小的半透明矩形。


方法二:(适合Qt带的继承子Widget部件)

 

setStyleSheet(重写它的样式中四个参数的最后一位代表透明度的值);//rgba的最后一位是控制透明度的0-255.

比如

this->setStyleSheet("background-color:rgba(244,244,244,2)");

//这是设置背景透明

注:

   设置成

this->setStyleSheet("background-color:rgba(244,244,244,1)")

反而不透明了;
   设置成

this->setStyleSheet("background-color:rgba(244,244,244,0)")

不能点击到透明区域;


方法三:(适合使整个窗体透明)

setWindowOpacity(设置整个窗体透明值)


这个值在0-1之间

文章最后发布于: 2016-09-22 17:15:47
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览