没有 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)
你用错了Image
class。
你应该使用:
from kivy.uix.image import Image
而不是
from kivy.core.image import Image
kivy.core.image.Image
的构造函数实际上需要一个位置参数。这就是 TypeError 的原因。但是您可能不想在这里使用 class。
您很可能想使用图像小部件,因此您应该使用 kivy.uix.image.Image
class。这个不需要位置参数。
我想做一个小程序,学习如何不用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)
你用错了Image
class。
你应该使用:
from kivy.uix.image import Image
而不是
from kivy.core.image import Image
kivy.core.image.Image
的构造函数实际上需要一个位置参数。这就是 TypeError 的原因。但是您可能不想在这里使用 class。
您很可能想使用图像小部件,因此您应该使用 kivy.uix.image.Image
class。这个不需要位置参数。