如何阻止背景在QpaintEvent中重复

时间:2012-08-20 14:47:54

标签: qt4 qpainter qpixmap paintevent

我有一个paintEvent,我每次画画时都会添加背景, 问题是我需要图像停止重复。

例如,如果我的背景图像是20像素x 20像素,我的 绘画区域是40像素x40像素,背景是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 个答案:

答案 0 :(得分:1)

有许多功能可以帮助缩放图片:

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

如果你知道高度,请尝试“scaleToHeight”。

这样的事情应该有效:

backgroundImage = backgroundImage.scaledToHeight(painter.height);

在你调用fillRect之前这样做,如果它是一个完美的正方形,你不应该有问题。