我想制作一个小程序,以便学习如何在不使用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)
答案 0 :(得分:1)
您使用的是错误的Image
课程。
你应该使用:
from kivy.uix.image import Image
而不是
from kivy.core.image import Image
kivy.core.image.Image
的构造函数实际上需要一个位置参数。这是TypeError的原因。但是你可能不想在这里使用那个类。
您最有可能想要使用图像窗口小部件,因此您应该使用kivy.uix.image.Image
类。这个不需要位置参数。