python kivy多个标签

Posted

技术标签:

【中文标题】python kivy多个标签【英文标题】:python kivy multiple labels 【发布时间】:2013-05-21 09:47:52 【问题描述】:

我试图在 for 循环中制作更多标签,但我总是遇到一个奇怪的问题。即使程序经历了整个 for 循环,它也不会生成所有标签。 代码如下:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label

class MyWidget(Widget):
    def draw(self):
        with self.canvas:           

            for i in range(6):
                print('I draw label')
                Label(text = 'hello', pos=(i*100, 100))
class MyApp(App):
    def build(self):
        game = MyWidget()
        game.draw()
        return game

if __name__ == '__main__':
    MyApp().run()

如果有人知道我做错了什么或您将如何解决问题,请告诉我。

【问题讨论】:

【参考方案1】:

好的,这里有一些问题。

canvas 用于 gl 指令,它实际上是您“绘制”小部件的地方,而不是整个小部件(就像 Label 一样)。

当您创建一个小部件时,如果您希望它可见,则必须将其添加到父小部件(本身可见,因为添加到可见父级),在这里我理解这些标签的意图是孩子你的game 小部件,所以将 MyWidget.draw 更改为:

    def draw(self):
        for i in range(6):
            print('I draw label')
            self.add_widget(Label(text='hello', pos=(i*100, 100))

应该做你想做的。

【讨论】:

以上是关于python kivy多个标签的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在 kivy 中使标签加粗

Kivy 标签中的断线不起作用(Python)

如何在 Kivy、Python 中更新标签的文本

使用纯 Python 在 Kivy 中更改标签

python [Kivy]从Slider更新标签

如何在 python 中使用格式化创建自定义 Kivy 标签类?