Kivy类工厂错误

时间:2015-02-04 18:52:34

标签: python python-2.7 kivy

我尝试使用屏幕管理器创建一个可以单击的图像。 我首先尝试将kivy文件存储在字符串变量中并返回字符串变量,但是我收到此错误消息:

 kivy.factory.FactoryException: Unknown class <BILD1>

所以我试图返回Screenmanager,但它似乎没有用。 我仍然收到相同的错误消息,请你帮我。 这是我的其余源代码:

class Auswahl(Screen):
    pass
class Frage(Screen):
    farbe = ListProperty([1, 1, 1, 1])
    def druck(self):
        self.farbe = ([1, 0, 0, 1])
        self.ids.box1.clear_widgets()
        wimg = Image(source='Bild1.png')
        self.ids.box1.add_widget(wimg)

class Troll(Screen):
    pass

class Manager(ScreenManager):
    pass

Builder.load_file('turf.kv')

class BILD1(Widget):
    velocity = ListProperty([1, 0])
    def __init__(self, **kwargs):
        super(Knopf, self).__init__(**kwargs)
        Clock.schedule_interval(self.Update, 1/60.)
    def Update(self, *args):
        pass
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'
class BILD2(Knopf):
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'
class BILD3(Knopf):
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'
class BILD4(Knopf):
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'



class TurF(App):
    def build(self):
        return Manager()

TurF().run()

1 个答案:

答案 0 :(得分:2)

移动您的Builder.load_file(&#39; turf.kv&#39;),如下所示:

class Auswahl(Screen):
    pass
class Frage(Screen):
    farbe = ListProperty([1, 1, 1, 1])
    def druck(self):
        self.farbe = ([1, 0, 0, 1])
        self.ids.box1.clear_widgets()
        wimg = Image(source='Bild1.png')
        self.ids.box1.add_widget(wimg)

class Troll(Screen):
    pass

class Manager(ScreenManager):
    pass



class BILD1(Widget):
    velocity = ListProperty([1, 0])
    def __init__(self, **kwargs):
        super(Knopf, self).__init__(**kwargs)
        Clock.schedule_interval(self.Update, 1/60.)
    def Update(self, *args):
        pass
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'
class BILD2(Knopf):
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'
class BILD3(Knopf):
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'
class BILD4(Knopf):
    def on_touch_down(self, touch):
        if self.collide_point(*touch.pos):
            print 'es geht'



Builder.load_file('turf.kv')

class TurF(App):
    def build(self):
        return Manager()

TurF().run()
相关问题