Skip to content

Latest commit

 

History

History
18 lines (15 loc) · 811 Bytes

Opacity.md

File metadata and controls

18 lines (15 loc) · 811 Bytes

Qt中设置透明度

  • QWidget::setWindowOpacity

    • windowOpacityQWidget的属性,我们可以通过此接口对QWidget一族设置不透明度,不过若Widget有父指针,则利用此接口设置会失败。此时可用以下两种方式替换。
  • QPainter::setOpacity

    • 利用QPainter设置是最原始有效的方式,当我们在paintEvent中绘制时,可以利用QPainter设置透明度。

        void Widget::paintEvent(QPaintEvent *event)
        {
            QPainter painter(this);
            painter.setOpacity(0.6);
            painter.drawPixmap(pos(),  pix.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
        }
      
  • QGraphicsOpacityEffect

      QGraphicsOpacityEffect *effect = newQGraphicsOpacityEffect(this);
      effect->setOpacity(0.5);
      widget->setGraphicsEffect(effect);