Глюк какой-то. Можно попробовать вместо этого устанавливать прозрачность непосредственно при рисовании в QGraphicsItem::paint()
C++ (Qt)
painter->setOpacity(0.4);
painter->drawImage...
и посмотреть на результат.
А ещё чисто из любопытства: вставь этот код в какой-нибудь метод, в котором осуществляется рисование и посмотри, что будет выводится:
C++ (Qt)
#include <typeinfo>
#include <QPaintEngine>
//.....
QPaintEngine *eng = painter->paintEngine();
qDebug() << "Paint engine type:" << eng->type() << "Name:" << typeid(*eng).name();