Всем привет.
Пытаюсь отрисовать виджет, унаследованный от QToolButton. Чего хочу добиться: нужно весь виджет закрасить допустим черным цветом, а потом в этом черном цвете прорубить "окно" в виде буквы "А", чтобы фоном для буквы "А" служил первоначальный фон родителя. В принципе всё работает, но появляются странные артефакты (зеленые точки):

Код:
void ColorPickerButton::paintEvent (QPaintEvent* event) {
	QToolButton::paintEvent(event); // даём родителю прорисоваться
	QPainter painter;
	QSize eventSize = iconSize();
	QRect eventRect(QPoint(0, 0), eventSize);
	painter.begin(this); // рисуем зеленый фон. Это я добавил для наглядности артефактов
		painter.setBrush(QBrush(QColor(0, 255, 0, 255)));
		painter.drawRect(eventRect);
	painter.end();
	// Создаём QImage с черным фоном
	QImage backImage(eventSize, QImage::Format_ARGB32_Premultiplied);
	QBrush brush;
	brush.setStyle(Qt::SolidPattern);
	brush.setColor(QColor(0, 0, 0));
	painter.begin(&backImage);
		painter.setBrush(brush);
		painter.drawRect(eventRect);
	painter.end();
	// Создаём QImage с текстом
	QImage textImage(eventSize, QImage::Format_ARGB32_Premultiplied);
	painter.begin(&textImage);
		QBrush textBrush;
		textBrush.setColor(QColor(0, 0, 0, 0)); // рисуем прозрачный фон
		painter.setBrush(textBrush);
		painter.drawRect(eventRect);
		QFont font = painter.font(); // рисуем непрозрачный текст
		font.setBold(true);
		font.setPointSize(14);
		painter.setFont(font);
		painter.setPen(QPen(QColor(0, 0, 0, 255)));
		painter.drawText (eventRect, Qt::AlignCenter, QString("A"), &eventRect);
	painter.end();
	// Рисуем QImage с текстом в QImage с черным фоном применяя композит
	painter.begin(&backImage);
		painter.setCompositionMode(QPainter::CompositionMode_DestinationOut);
		painter.drawImage(QPoint(0, 0), textImage);
	painter.end();
	// Рисуем полученный QImage в виджет
	painter.begin(this);
		painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
		painter.drawImage(QPoint(0, 0), backImage);
	painter.end();
}
Кто-нибудь знает, как это исправить?