GridLayout中的项重叠?

时间:2016-02-03 16:59:52

标签: python python-3.x kivy

我试图在kivy中创建一个简单的GridLayout,如下所示:

在Python文件中:

      <div class="item active"> <!-- active only appears if it's the first item -->
        <blockquote>
          <div class="row">
            <div class="col-sm-3 text-center">
              <img class="img-circle" src="json[0].image" style="width: 100px;height:100px;">
            </div>
            <div class="col-sm-9">
              <p>json[0].quote</p>
              <small>json[0].person</small>
            </div>
          </div>
        </blockquote>
      </div>

在pp.kv中:

class GroundTile(Widget):
    pass

class PPGame(Widget):
    def __init__(self, **kwargs):
        super(PPGame, self).__init__(**kwargs)
        for x in range(5):
            t = GroundTile()
            self.add_widget(t)
        self.add_widget(Label(text='ASD'))

我希望此代码能够创建一个包含5个图像和1个文本标签的3 * 2布局。该应用程序启动,但我看到的只是左下角的一个图像,标签位于其上方。据推测,其余的图像也堆叠在它们下面。我做错了什么?

1 个答案:

答案 0 :(得分:0)

PPGame GridLayout继承GroundTileImage

class GroundTile(Image):
    pass

class PPGame(GridLayout):
    def __init__(self, **kwargs):
        super(PPGame, self).__init__(**kwargs)
        for x in range(5):
            self.add_widget(GroundTile())
        self.add_widget(Label(text='ASD'))

#:kivy 1.9.0

<GroundTile>:
    size: 50, 50
    pos_hint: {'x': 1, 'y': 1}
    source: 'i1.png'

<PPGame>:
    cols: 3
    rows: 2

Widget他们自己不会照顾孩子的定位。