python kivy 多个标签

标签 python label kivy

我试图在 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()

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

最佳答案

好的,这里有一些问题。

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 多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757895/

相关文章:

python - brew 安装后 python (2.7.13) : [Errno 13] Permission denied

python - 如何使用 boto3 设置现有 S3 key 的内容类型?

java - PyLucene org.apache.lucene.benchmark 丢失

c# - WinForms 动态标签

python - Python youtube-upload-即使我的帐户已被授权也无法上传缩略图

javascript - 检查一个 div 而不是一个复选框

c# - 显示 'saved' 标签 2 秒然后在 c# asp.net 中隐藏

python - 使用自定义小部件 kivy

python - 小部件在 GridLayout 中的位置

python - kivy:单击 1 个按钮即可触发多个功能