2017-01-20 2 views
1

Я попытался это:Как заполнить прямоугольник (объект Rect) с изображением в Qt?

QBrush brush(QPixmap(":/new/prefix1/car.jpg")); 
painter.setBrush(brush); 
QRectF car(positions[i],120, 20, 10); 
painter.drawRect(car); 

Это показывает изображение, но оно повторяется во время моделирования в QPaint. Я хочу, чтобы заполнить прямоугольник с изображением, но я не нахожу каких-либо конкретных методов для Rect. Какие-нибудь трюки?

+2

Почему вы не используете [ 'drawPixmap()'] (https: // Док. qt.io/qt-5/qpainter.html#drawPixmap)? это позволит вам нарисовать pixmap в 'QRectF'. 'drawRect' просто рисует прямоугольник с использованием текущей кисти, а так как текстура вашей кисти установлена ​​в пиксельную карту, которую вы хотите нарисовать, pixmap будет повторяться в прямоугольнике. – Mike

+0

особых методов для 'QRectF' нет. В конце концов, ['QRectF'] (https://doc.qt.io/qt-5/qrectf.html#details) просто определяет прямоугольник в равнине, он просто состоит из верхнего левого угла и размера, он обычно используется только для определения координат, где рисование должно происходить на конкретном устройстве рисования. – Mike

ответ

0

Использование QPainters drawPixmap. Существует перегруженная функция, которая принимает как в QPixmap и QRect, в которую пиксельная будут окрашены:

http://doc.qt.io/qt-5/qpainter.html#drawPixmap-9

Смежные вопросы