Текстура QBrush без листов - PullRequest
0 голосов
/ 14 июля 2011

Есть ли простой способ избавиться от листов при использовании QBrush с текстурой?

QImage*   texture = CreateQImage();       // create texture
QBrush*   brush   = new QBrush(*texture); // create texture brush
QPainter* painter = CreateQPainter();     // create painter

painter->fillRectangle(0, 0, 500, 500, *brush);

Предположим, у нас есть текстура QImage размером 20x20 пикселей.Приведенный выше код распределит эту текстуру по всему прямоугольнику.Есть ли простой способ нарисовать только один экземпляр этой текстуры?Использование QBrush имеет решающее значение.

Теоретически я мог бы перезагрузить каждый метод заливки и рисования QPainter, который принимает QBrush в качестве входных данных, и использовать метод

QPainter.drawImage()
, но я думаю, что должен быть более простой способ.

Спасибо, Тони.

1 Ответ

0 голосов
/ 14 июля 2011

Я не думаю, что есть (см. Qt :: BrushStyle - единственный стиль с текстурой на нем), и это не будет иметь смысла IMO.Если вам нужно только одно изображение, используйте функции drawImage, как вы заявили.

(Одна из проблем, связанных с отсутствием листов, заключается в следующем: чем вы заполняете остальную часть прямоугольника? Ничем? Некоторым по умолчаниюцвет фона? Некоторые другие атрибуты QBrush?

...