Kivy Pong教程中的语法错误

时间:2017-09-07 20:56:56

标签: python syntax-error kivy

我从他们的网站上开始了Kivy教程。按照启动代码,我遇到了语法错误。我已经搜索了很多答案,但没有一个不适用于我的情况。

python文件名为'PongApp.py':

# -*- coding: utf-8 -*-
"""
Created on Thu Sep  7 21:16:31 2017

@author: 917k
"""

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

class PongGame(Widget):
    pass

class PongApp(App):
    def build(self):
        return PongGame()

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

我还创建了一个名为'Pong.kv'的.kv文件,它与'PongApp.py'位于同一目录中。

Pong.kv:

# -*- coding: utf-8 -*-

#:kivy 1.10.0

<PongGame>:
    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"

错误消息:

pos: self.center_x = -5, 0
  ^
SyntaxError: invalid syntax

我已经阅读了关于在Kivy教程网站上命名.kv文件的说明,我想我理解正确。我怀疑某处可能存在缩进或命名错误,但我似乎无法找到它。

2 个答案:

答案 0 :(得分:0)

# -*- coding: utf-8 -*-

#:kivy 1.10.0

<PongGame>:
    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"

我认为你需要一个空格(pos:self.center_x = - &#34; here&#34; 5,0)我已经更新了上面的代码,所以再试一次运行

答案 1 :(得分:0)

您的kv文件中存在拼写错误。取代

pos: self.center_x = -5, 0

pos: self.center_x - 5, 0

实施例

pong.kv

# -*- coding: utf-8 -*-

#:kivy 1.10.0

<PongGame>:
    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"

PongApp.py

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


class PongGame(Widget):
    pass


class PongApp(App):
    def build(self):
        return PongGame()

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

输出

enter image description here