Как остановить повторение фона в 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, если это идеальный квадрат, у вас не должно быть проблем.