没有 kv 语言的 Kivy 图像

Kivy images without kv language

我想做一个小程序,学习如何不用kv语言添加图片,但是没有成功。 这是代码:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Color, Rectangle
from kivy.core.window import Window
from kivy.lang import Builder
from kivy.core.image import Image

class Sprite(Image):
    def __init__(self, **kwargs):
        super(Sprite, self).__init__(**kwargs)
        self.size = self.texture_size

class Game(Widget):
    def __init__(self):
        super(Game, self).__init__()
        self.add_widget(Sprite(source='feind.png'))

class GameApp(App):
    def build(self):
        game = Game()
        Window.size = game.size
        return game

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

这是我收到的错误消息:

   File "g.py", line 10, in __init__
     super(Sprite, self).__init__(**kwargs)
 TypeError: __init__() takes exactly 2 arguments (1 given)

你用错了Imageclass。 你应该使用:

from kivy.uix.image import Image

而不是

from kivy.core.image import Image

kivy.core.image.Image 的构造函数实际上需要一个位置参数。这就是 TypeError 的原因。但是您可能不想在这里使用 class。 您很可能想使用图像小部件,因此您应该使用 kivy.uix.image.Image class。这个不需要位置参数。