使用带纹理的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。
答案 0 :(得分:0)
我认为没有(参见Qt::BrushStyle - 唯一具有纹理瓷砖的样式),并且它不会真正成为感觉IMO。如果您只想要一张图片,请按照您的说明使用drawImage
功能。
(没有平铺的问题之一是:你用什么填充矩形的其余部分?没什么?一些默认背景颜色?其他一些QBrush
属性?)