Qt QGraphicsView одно фоновое изображение в центре

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

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

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

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

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


person boogie    schedule 09.11.2010    source источник


Ответы (1)


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

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

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

person Arnold Spence    schedule 10.11.2010