Qt+VLC视频画面上覆盖半透明控件

很多人遇到过这个问题吧,我也不例外,试了很多常规的方法没有达到预期的效果。

后来想到把控件原有的绘制屏蔽掉,才得到了现在的解决方法。

效果图如下:

Qt+VLC视频画面上覆盖半透明控件_第1张图片

以按钮为例

class Button:public QPushButton
{
    Q_OBJECT
public:
    Button():QPushButton(0){}
    void paintEvent(QPaintEvent* e)
    {
        QPainter painter(this);
        painter.fillRect(0,0,size().width(), size().height(), QColor(255,0,0,100));
    }
};
QPushButton* btn = new Button;
btn->setAttribute(Qt::WA_TranslucentBackground);

 

Qt+VLC视频画面上覆盖半透明控件_第2张图片

Qt+VLC视频画面上覆盖半透明控件_第3张图片

 

你可能感兴趣的:(qt)