Events 基维旋转木马从一个按钮 运行旋转木马的代码中缺少什么??

Events 基维旋转木马从一个按钮 运行旋转木马的代码中缺少什么??,events,carousel,kivy,Events,Carousel,Kivy,我正试着用按钮连接旋转木马。当我运行时,它会显示一个按钮,但on_按什么都不会发生。 运行旋转木马的代码中缺少什么 Builder.load_string(''' <tela>: Button: text: 'ir' font_size: 32 size_hint: None, None pos_hint: {'right': 1} size: 150, 50 on_press:

我正试着用按钮连接旋转木马。当我运行时,它会显示一个按钮,但on_按什么都不会发生。 运行旋转木马的代码中缺少什么

Builder.load_string('''
<tela>:

    Button:
        text: 'ir'
        font_size: 32
        size_hint: None, None
        pos_hint: {'right': 1}
        size: 150, 50
        on_press: root.ida()
   
''')

class acesso(BoxLayout):
    def ida(self):
        self.clear_widgets()
        self.add_widget(tela1())

class tela(BoxLayout):
    def ida(self):
            self.parent.ida()
    
class tela1(App,Widget):
    def livro(self):
        carousel = Carousel(direction='right',loop='true')
        for i in range(1,5):
            src = "images/%d.png" % i
            image = Image(source=src,pos=(1,10), size=(1250, 635))
            carousel.add_widget(image)
        return carousel
    

class CarroselApp(App):
    def build(self):
        self.acesso = acesso()
        self.acesso.add_widget(tela())
        return self.acesso

if __name__ == "__main__":

    CarroselApp().run()
Builder.load\u字符串(“”)
:
按钮:
文本:“ir”
字体大小:32
大小提示:无,无
位置提示:{'right':1}
尺寸:150,50
on_press:root.ida()
''')
acesso类(BoxLayout):
def ida(self):
self.clear_widgets()
self.add_小部件(tela1())
影视及娱乐事务管理处(BoxLayout):
def ida(self):
self.parent.ida()
tela1类(应用程序、小部件):
def livro(自我):
转盘=转盘(方向为右,循环为真)
对于范围(1,5)内的i:
src=“images/%d.png”%i
图像=图像(源=src,位置=(1,10),大小=(1250635))
carousel.add_小部件(图像)
回程转盘
卡罗塞拉普级(应用程序):
def生成(自):
self.acesso=acesso()
self.acesso.add_小部件(tela())
返回self.acesso
如果名称=“\uuuuu main\uuuuuuuu”:
CarroselApp().run()

您的代码存在多个问题:

  • 您从
    App
    Widget
    tela1
    继承h。我不知道这会有什么影响,但不知怎的,这是错误的。这些都不是要结合在一起的。您的
    CarroselApp
    已在这里

  • 您的
    tela1
    小部件有一个
    livro()
    方法,但从未被调用。另外,您可以创建一个小部件
    Carousel
    ,而无需将其添加到
    tela1

  • tela
    继承自
    小部件
    ,因此它不会布局子项。我百分之二百相信这不会满足你的愿望

  • 我想如果用此代码替换
    tela1
    ,它可能会起作用:

    class tela1(FloatLayout): def __init__(self, **kwargs): super(tela1, self).__init__(**kwargs) self.add_widget(self.livro()) def livro(self): carousel = Carousel(direction='right',loop='true') for i in range(1,5): src = "images/%d.png" % i image = Image(source=src,pos=(1,10), size=(1250, 635)) carousel.add_widget(image) return carousel tela1类(浮动布局): 定义初始(自我,**kwargs): 超级(tela1,self)。\uuuuuu init\uuuuuuuuu(**kwargs) self.add_小部件(self.livro()) def livro(自我): 转盘=转盘(方向为右,循环为真) 对于范围(1,5)内的i: src=“images/%d.png”%i 图像=图像(源=src,位置=(1,10),大小=(1250635)) carousel.add_小部件(图像) 回程转盘
    注:请考虑PEP8为您的代码。使用小写字母作为类名并不常见且容易混淆。

    请在导入时包含完整的代码。它更容易复制。