QBrush纹理没有平铺

时间:2011-07-14 14:06:40

标签: qt textures qpainter qimage

使用带纹理的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);

假设我们有一个大小为20x20像素的QImage纹理。上面的代码将在填充的矩形中平铺此纹理。有一种简单的方法只能绘制这个纹理的单个实例吗? QBrush的使用至关重要。

理论上,我可以重新加载QPainter的每个填充和绘制方法,它将QBrush作为输入并使用

QPainter.drawImage()
方法,但我认为必须有一种更简单的方法。

< / p>

谢谢,Tony。

1 个答案:

答案 0 :(得分:0)

我认为没有(参见Qt::BrushStyle - 唯一具有纹理瓷砖的样式),并且它不会真正成为感觉IMO。如果您只想要一张图片,请按照您的说明使用drawImage功能。

(没有平铺的问题之一是:你用什么填充矩形的其余部分?没什么?一些默认背景颜色?其他一些QBrush属性?)