我想在由canvas.before
绘制的Rectangle
内重复一个纹理。问题是我不知道Rectangle
的大小(它被用作其小部件的背景)
例如,我有一个Rectangle
,它有48
px高度和宽度100
-500
px。我想通过水平重复48x48
纹理来填充它的内容
我知道并尝试过设置texture.wrap = 'repeat'
和texture.uvsize
,它工作正常,但前提是我事先知道小部件的大小。例如,为大小为144x48
的小部件设置uvsize = (3, 1)
就可以了
但是,当我想在重画小部件之前更新uvsize
时,这不起作用。我创建了一个画布回调并在那里更新了uvsize
,但由于某些原因,这没有效果:
...
with self.canvas.before:
self.cb = Callback(self.on_canvas_redraw)
...
def on_canvas_redraw(self, instr):
self.texture.uvsize = (self.width / 48, 1)
那么,如何动态更新uvsize
?或者有更好的方法来处理小部件的大小调整,或者有更好的方法来解决这个问题
目前没有回答
相关问题 更多 >
编程相关推荐