Qt如何设置某个区域透明

方法:重载paintEvent,在区域内重新绘制

代码:

void UIMainWindow::paintEvent(QPaintEvent* event) {
    QPainter p(this);
    p.setCompositionMode(QPainter::CompositionMode_Clear);
    int x = m_wgtVideo->x();
    int y = m_wgtVideo->y();
    int width = m_wgtVideo->width();
    int height = m_wgtVideo->height();
    p.fillRect(x, y, width, height, Qt::SolidPattern);
}

上述代码实现:m_wgtVideo所在的区域透明

问题:上述解决方案在windows下,并没有真的使得区域透明,而是使区域被黑色填充。

你可能感兴趣的:(QT)