0

paintEventがあり、何かをペイントするたびに背景を追加しています。問題は、画像の繰り返しを停止する必要があることです。

たとえば、背景画像が20ピクセルx 20ピクセルで、ペイント領域が40ピクセルx 40ピクセルの場合、背景は4つの画像であり、必要なのは1つだけです。

これが私のコードです。

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));

助けてくれてありがとう!

4

1 に答える 1

1

画像の拡大縮小に役立つ機能がたくさんあります。

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

高さを知っている場合は、「scaleToHeight」を試してください。

このようなものが機能するはずです:

backgroundImage = backgroundImage.scaledToHeight(painter.height);

fillRectを呼び出す前にこれを行ってください。完全な正方形であれば、問題は発生しません。

于 2012-08-20T14:56:02.300 に答える