Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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>;GridLayout渲染单个平铺_Python_Kivy_Kivy Language - Fatal编程技术网

<;Python-Kivy>;GridLayout渲染单个平铺

<;Python-Kivy>;GridLayout渲染单个平铺,python,kivy,kivy-language,Python,Kivy,Kivy Language,我有以下python类: import os from kivy.uix.widget import Widget from kivy.uix.gridlayout import GridLayout from kivy.uix.image import Image from crawler.settings import ASSETS_DIR class Map(GridLayout): SIZE = 5 def __init__(self, **kwargs):

我有以下python类:

import os

from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import Image

from crawler.settings import ASSETS_DIR


class Map(GridLayout):
    SIZE = 5

    def __init__(self, **kwargs):
        super(Map, self).__init__(**kwargs)
        for _ in range(0, self.SIZE**2):
            self.add_widget(Tile())


class Tile(Widget):
    def __init__(self, **kwargs):
        super(Tile, self).__init__(**kwargs)
        self.add_widget(Image(source=os.path.join(ASSETS_DIR, 'images/chest.gif')))
以及以下语言定义:

#:kivy 1.0.9

<Map>:
    size: self.parent.size

<Tile>:
    size: 20, 20
它显示正确的结果:

在我的瓷砖课上,我缺少什么来完成这项工作?我想这就是问题所在,但到目前为止我还没找到

class Tile(Widget):
    def __init__(self, **kwargs):
        super(Tile, self).__init__(**kwargs)
        self.add_widget(Image(source=os.path.join(ASSETS_DIR, 'images/chest.gif')))
每个磁贴都是包含图像的小部件,但小部件不是布局类,因此图像的默认位置为
(0,0)
,大小为
(100100)


您可以将互动程序设置为图像,或者将小部件替换为类似BoxLayout的布局(后一种选择效率较低,除非您需要额外的布局行为)。

这实际上是有道理的,让我试试
class Tile(Widget):
    def __init__(self, **kwargs):
        super(Tile, self).__init__(**kwargs)
        self.add_widget(Image(source=os.path.join(ASSETS_DIR, 'images/chest.gif')))