方法:重载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下,并没有真的使得区域透明,而是使区域被黑色填充。