首页 > 解决方案 > 无法在窗口中显示进度条

问题描述

我是 kivy 的新手,所以我真的不知道如何在我的 NaviWindow 中显示进度条。我似乎无法将进度条放在 kv 文件中,所以有人知道如何在 NaviWindow 中显示进度条吗?

.py文件

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.progressbar import ProgressBar
from kivy.uix.screenmanager import ScreenManager, Screen

KV = """

WindowManager:
    NaviWindow:

<NaviWindow>:


"""

class WindowManager(ScreenManager):
    pass

class NaviWindow(Screen):
    def build(self):
        Progress = ProgressBar(max=1000)
        Progress.value = 100
        return Progress


class MyMainApp(App):
    def build(self):
        return Builder.load_string(KV)

if __name__ == "__main__":
    MyMainApp().run()

标签: pythonkivy

解决方案


只有 App 类(显然是继承自 App 的类)有 build 方法,但你似乎认为 Screen 方法也有它,显然是不正确的。解决方案是使用以下add_widget()方法添加 ProgressBar:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.progressbar import ProgressBar
from kivy.uix.screenmanager import ScreenManager, Screen

KV = """
WindowManager:
    NaviWindow:

<NaviWindow>:
"""


class WindowManager(ScreenManager):
    pass


class NaviWindow(Screen):
    def __init__(self, **kwargs):
        super(NaviWindow, self).__init__(**kwargs)
        self.progress = ProgressBar(max=1000)
        self.progress.value = 100
        self.add_widget(self.progress)


class MyMainApp(App):
    def build(self):
        return Builder.load_string(KV)


if __name__ == "__main__":
    MyMainApp().run()

推荐阅读