python/kivy.kv文件无法读取

python/kivy.kv文件无法读取,python,kivy,Python,Kivy,我刚刚开始学习编程,我有一个基于kivy.org网站上的乒乓球游戏教程的非常基本的应用程序,但我必须有一个基本的缺陷,当我运行程序时我看不到,我得到的是一个空白屏幕,而不是预期的画布和标签。请帮我减少在基础上的时间浪费 from kivy.app import App from kivy.uix.button import Button from kivy.uix.widget import Widget class Singularity(Widget): pass class S

我刚刚开始学习编程,我有一个基于kivy.org网站上的乒乓球游戏教程的非常基本的应用程序,但我必须有一个基本的缺陷,当我运行程序时我看不到,我得到的是一个空白屏幕,而不是预期的画布和标签。请帮我减少在基础上的时间浪费

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.widget import Widget

class Singularity(Widget):
    pass

class SingularityApp(App):
    def build(self):
        return Singularity()

if __name__ in ('__main__', '__android__'):
    SingularityApp().run()
以及奇点.kv:

#:kivy 1.9.0

<Singularity>:    
    canvas:
        Rectangle:
            pos: self.center_x - 5, 0
            size: 10, self.height

    Label:
        font_size: 70  
        center_x: root.width / 4
        top: root.top - 50
        text: "0"

    Label:
        font_size: 70  
        center_x: root.width * 3 / 4
        top: root.top - 50
        text: "0"
#:kivy 1.9.0
:    
画布:
矩形:
位置:自中心x-5,0
尺码:10,身高
标签:
字体大小:70
中心x:root.width/4
顶部:root.top-50
文本:“0”
标签:
字体大小:70
中心x:root.width*3/4
顶部:root.top-50
文本:“0”
  • 检查您的MainApp(App)类名是否与没有“App”的.kv文件名相同(如果不使它们相同),它不区分大小写。例如:MaNagerApp(App)将加载manager.kv

  • 如果您不想更改名称,只需添加self.load\u kv(您的文件名)
像这样:

def build(self):
    self.load_kv('singularity.kv')
    return Singularity()

我不确定这是否是你的问题(不太可能),但我过去在Kivy遇到过地板划分问题。如果您在Python2下运行此功能,那么即使在*.kv文件中,也需要考虑楼层划分。这意味着
center\u x:root.width*3/4
应该是
center\u x:root.width*3.0/4.0
。我的kv文件命名正确,但它仍然无法加载该文件。我在Windows中没有任何问题,但最近切换到Ubuntu,它停止了工作。这就解决了问题。所以,即使你把它命名正确,也要尝试一下。