1. 程式人生 > >Qt如何設定某個區域透明

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下,並沒有真的使得區域透明,而是使區域被黑色填充。