在我的应用中,我需要知道画布的大小以像素为单位。
相反,无论画布宽多少像素,canvas.size
都会返回[100,100]
。
你能告诉我一种方法来获得画布宽和高的像素数吗?
答案 0 :(得分:2)
我猜你真的需要窗口大小才能知道你的图像边界是什么。在这种情况下,您可以使用:
from kivy.core.window import Window
size = Window.size
当然,您可以使用PIL或scipy等画布的源图像来获得其分辨率(画布将匹配)。
答案 1 :(得分:2)
Canvas中没有位置或大小。 Canvas就像图形指令的容器一样,就像在纹理中绘制的Fbo一样,所以它有一个大小。
在Kivy中,Canvas.size不存在,但我想你把你的小部件称为画布。默认情况下,窗口小部件大小为100,100。如果将其放入布局中,则当布局已知其自身大小时,将更改大小。意思是,您需要收听Widget.size的更改,或者使用您知道的大小,例如Window.size。
答案 2 :(得分:0)
画布似乎有一个"尺寸" (100,100)无论你做什么。您要查找的大小必须是小部件大小,例如 如果你有一个FloatLayout并且想在它上画一个填充它的矩形 尝试:
f = FloatLayout
Rectangle(pos_hint={'x': 0, 'y': 0}, size=f.size)
而不是
Rectangle(pos_hint={'x': 0, 'y': 0}, size=f.canvas.size)