Необхідність вигадати цей велосипед виникла коли я вирішив додати блиску для власної утиліти що спрощує процес вирізання окремих текстур з cut images.
Виявляється алгоритм побудови такого зображення є дуже простим.
void ImageWidget::paintEvent( QPaintEvent * event )
{
QPainter painter(this);
const QRect area = event->rect();
const int square = 8;
int x = (area.left()%square)*square;
int y = (area.top()%square)*square;
while (y < area.bottom()) {
x = 0;
while (x < area.right()) {
const QColor fill = ((x+y)/square)%2?Qt::gray:Qt::lightGray;
painter.fillRect(x, y, square, square, fill);
x += square;
}
y += square;
}
}
По моєму вийшло досить лаконічно і дуже непогано.
Попередження: в реальних проектах де потрібно дотримуватися мінливих вимог дизайнерів краще використати QPainter::fillRect( ,QBrush(QPixmap));