Qt QGraphicsВижте едно фоново изображение в центъра

Моят 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