【问题标题】:Size of canvas in kivykivy画布尺寸
【发布时间】:2014-12-08 13:15:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    在 Canvas 中没有位置和大小。画布仅充当图形指令的容器,例如在纹理中绘制的 Fbo,因此它具有大小。

    在 Kivy 中,Canvas.size 不存在,但我猜您将小部件称为画布。默认情况下,一个 Widget 的大小是 100、100。如果你把它放到一个布局中,大小会改变,当布局知道它自己的大小时。也就是说,你需要监听Widget.size的变化,或者使用你知道的大小,比如Window.size。

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      无论你做什么,画布的“大小”似乎都是 (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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多