Qt QGraphicsView одно фоновое изображение в центре - PullRequest
3 голосов
/ 10 ноября 2010

Мой QGraphicsView элемент намного больше, чем его фоновое изображение, но я бы хотел, чтобы это фоновое изображение было нарисовано только один раз. Теперь все это заполнено этим фоновым изображением столько раз, сколько есть места для него.

Так, как я могу заставить это фоновое изображение быть нарисованным только один раз к центру вида?

Вот код, который я сейчас использую:

QPalette palette;
palette.setBrush(this->backgroundRole(),QBrush(*myImage));
this->setPalette(palette);

Спасибо за ваши ответы!

1 Ответ

1 голос
/ 10 ноября 2010

QGraphicsView отображает фон в функции drawBackground().Реализация по умолчанию этого заполняет прямоугольник представлений, используя кисть фона, давая результат, который вы видите.

Вы можете переопределить drawBackground() для рендеринга изображения так, как вы хотите, но это будет означать создание подкласса QGraphicsView.

Если это не вариант, возможно, вы можете установить QGraphicsPixmapItem в самом низком порядке Z в сцене с нужным вам изображением.

...