Qt的半透明方法总结

如果是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之间

展开阅读全文
©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值