Как остановить повторение фона в QpaintEvent

У меня есть paintEvent, и я добавляю фон каждый раз, когда рисую, проблема в том, что мне нужно, чтобы изображение перестало повторяться.

Например, если мое фоновое изображение имеет размер 20 x 20 пикселей, а область рисования составляет 40 x 40 пикселей, фон имеет 4 изображения, и мне нужно только одно.

Вот мой код

1. QPainter painter; // painter for the canvas
2. painter.begin(this);
3. QPixmap backgroundImage;
4. backgroundImage.load("multimedia/monitor_image.png");
5. painter.fillRect(event->rect(), QBrush(backgroundImage));

Спасибо за помощь!

1 ответ

Решение

Есть несколько функций, которые помогут масштабировать изображение:

http://doc.qt.nokia.com/4.7-snapshot/qpixmap.html

Попробуйте "scaleToHeight", если вы знаете высоту.

Примерно так должно работать:

backgroundImage = backgroundImage.scaledToHeight(painter.height);

Сделайте это, прежде чем вызывать fillRect, если это идеальный квадрат, у вас не должно быть проблем.

Другие вопросы по тегам