如果是QWidget,可以重写了它的void paintEvent(QPaintEvent *);事件
如果是QGraphics,可以重写它的void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);事件
如果是QML,可以直接设置颜色的rgba值
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());
这样就画了一个从原点到窗口大小的半透明矩形。
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之间