无法在kivy中显示进度条

2024-06-25 23:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行这段代码时,屏幕是全黑的,并且显示了进度条。我不知道为什么。有人能帮我解释一下为什么屏幕上什么也没显示吗。提前谢谢

progressbar.py文件

import kivy
from kivy.app import App
kivy.require('1.9.0')
from kivy.uix.label import Label
from kivy.uix.progressbar import ProgressBar
from kivy.uix.boxlayout import BoxLayout

class ProgBar(BoxLayout):
    pass

class mainApp(App):
    def build(self):
        return ProgBar()


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

progressbar.kv文件

<ProgBar>:

    orientation: 'vertical'

    canvas: 
        Color: 
            rgb: .45, .28, .5
        Rectangle: 
            pos: self.pos 
            size: self.size 


    Label: 
        text: '[size = 40px]Progress Bar 1 (at .25)'
        color: .5, 0, .5, 1
        markup: True


    ProgressBar: 
        value: .25
        min: 0
        max: 1
        pos_hint: {'x':.1} 
        size_hint_x: .8


    Label: 
        text: '[size = 40px]Progress Bar 2 (at .55)'
        color: .5, 0, .5, 1
        markup: True


    ProgressBar: 
        value: .55
        min: 0
        max: 1
        pos_hint: {'x':.1} 
        size_hint_x: .8

Tags: 文件fromposimportselfappsize屏幕
1条回答
网友
1楼 · 发布于 2024-06-25 23:23:15

您在代码的哪一部分指出.kv负载?如果从App继承的类的名称是xApp,那么默认情况下kivy将加载x.kv,而在您的情况下,这个名称不符合要求,因此您必须使用生成器通过^{}方法显式加载它:

import kivy

kivy.require("1.9.0")

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang.builder import Builder

Builder.load_file("progressbar.kv")


class ProgBar(BoxLayout):
    pass


class mainApp(App):
    def build(self):
        return ProgBar()


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

相关问题 更多 >