python - 无法在窗口中显示进度条
问题描述
我是 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()
解决方案
只有 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()
推荐阅读
- zapier - Zapier 从具有多个分隔符的文本行中提取国家代码
- css - Storybook 仅加载 Emotion Styling 第一次加载
- android - 对 LiveData 使用 setValue 而不是 PostValue
- javascript - 使用类型脚本根据数组中的某些项过滤两个数组
- csv - 在任何网站上以相同格式显示 .csv 内容
- c++ - 有没有办法将 8bitX32 ymm 寄存器右/左洗牌 N 个位置(c++)
- php - 无法分离和删除 morphToMany 关系
- apache-spark - 无法访问带有句点的名称的 PySpark 列。在名字里
- django - 如何保护 Django Rest API
- c++ - C++ #defines 在本地 .h 与 .h 中包含的对象