Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 帆布的大小(以kivy为单位)_Python_Kivy - Fatal编程技术网

Python 帆布的大小(以kivy为单位)

Python 帆布的大小(以kivy为单位),python,kivy,Python,Kivy,在我的应用程序中,我需要知道画布的像素大小 调用canvas.size将返回[100100],无论画布有多宽 你能告诉我一种方法来获得画布的宽度和高度是多少像素吗?我猜你实际上需要窗口大小来知道你的图像边界是什么。在这种情况下,您可以使用: from kivy.core.window import Window size = Window.size 当然,您可以将画布的源图像与PIL或scipy等一起使用,以获得其分辨率(画布将匹配该分辨率)。画布中没有位置和大小。画布就像图形指令的容器一样,

在我的应用程序中,我需要知道画布的像素大小

调用
canvas.size
将返回
[100100]
,无论画布有多宽


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

我猜你实际上需要窗口大小来知道你的图像边界是什么。在这种情况下,您可以使用:

from kivy.core.window import Window
size = Window.size

当然,您可以将画布的源图像与PIL或scipy等一起使用,以获得其分辨率(画布将匹配该分辨率)。

画布中没有位置和大小。画布就像图形指令的容器一样,就像在纹理中绘制的Fbo一样,所以它有一个大小


在Kivy中,Canvas.size不存在,但我猜您将小部件称为Canvas。默认情况下,小部件的大小是100100。如果将其放入布局中,当布局知道其自身大小时,大小将发生更改。也就是说,您需要监听Widget.size的更改,或者使用已知的大小,如Window.size。

无论您做什么,画布的“大小”似乎都是(100100)。您要查找的大小必须是小部件大小,例如。 如果您有一个FloatLayout,并希望在其上绘制一个填充它的矩形 尝试:

而不是

Rectangle(pos_hint={'x': 0, 'y': 0}, size=f.canvas.size)
Rectangle(pos_hint={'x': 0, 'y': 0}, size=f.canvas.size)