МСВС
void CDDDDDD::drawingPixmap(QRegion _rgn)
{
QPixmap result_pixmap( m_initial_pixmap.width(), m_initial_pixmap.height() );
result_pixmap.fill(QColor(Qt::transparent)); // сделали её полностью прозрачной
QPainter painter(&result_pixmap);
if ( !m_show )
{
QRegion rgnAll( QRect(0,0,m_initial_pixmap.width(), m_initial_pixmap.height()) );
_rgn = rgnAll.xored(_rgn);
}
painter.setClipRegion( _rgn );
painter.drawPixmap( 0, 0, m_initial_pixmap.width(), m_initial_pixmap.height(), m_initial_pixmap );
pseudoShadow()->setPixmap( result_pixmap );
pseudoShadow()->repaint();
pseudoWidget()->setPixmap( result_pixmap );
pseudoWidget()->repaint();
}
На месте где должен быть выбит регион (то есть должно быть прозрачно и виден нижний виджет) происходит мелькание какого то графического мусора с соседних виджетов. Откуда оно тут берется не пойму.
Эта ф-я - член класса не гуишного потока вызывается из run() вот такой конструкцией:
QMetaObject::invokeMethod(this, "drawingPixmap", Qt::BlockingQueuedConnection, Q_ARG(QRegion, rgn));
На виндюках проблем нет, на МСВС на виртуальной машине тоже, на "железной" также все ок, а наблюдается это только при установленных драйверах для видео-карточки.