kivy帆布的尺寸

时间:2014-12-08 13:15:11

标签: python kivy

在我的应用中,我需要知道画布的大小以像素为单位

相反,无论画布宽多少像素,canvas.size都会返回[100,100]

你能告诉我一种方法来获得画布宽和高的像素数吗?

3 个答案:

答案 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)