我做了一个非常简单的Kivy应用程序,我有不同的布局。我需要把我的应用程序分成一个GridLayout(rows=2)
,这样我就可以在屏幕的顶部有一个“header”,在屏幕的其余部分有一个carousel
或{
我的问题是我不知道如何在布局中返回我的小部件。在
我的代码是:
class Logo(App):
def build(self):
layout = GridLayout(rows=2)
layoutTop = FloatLayout()
layoutMid = FloatLayout()
logo = Image(source='imagine.png',size_hint=(.25,.25),pos=(30,380))
titre = Label(text='#LeCubeMedia',font_size='40sp',pos=(0,280))
ip = Label(text='192.168.42.1',font_size='25sp',pos=(250,280))
carousel = Carousel(direction='right', loop = True, size_hint=(.5,.5),pos=(300,180))
for i in range(2):
src = "imagine.png"
image = Factory.AsyncImage(source=src, allow_stretch=True)
carousel.add_widget(image)
Clock.schedule_interval(carousel.load_next, 1)
return carousel ------> 1st Return
layoutTop.add_widget(titre)
layoutTop.add_widget(logo)
layoutTop.add_widget(ip)
layoutMid.add_widget(carousel)
layout.add_widget(layoutTop)
layout.add_widget(layoutMid)
return layout ------> 2nd Return
if __name__ == '__main__':
Logo().run()
如您所见,我需要这些2return
,以便在布局中显示我的旋转木马,但是这样,只有旋转木马才会出现在我的应用程序中。如果我删除return carousel
,那么它将无法滑动图像,这有点像布局刷新阻止旋转木马正常传递图像。在
有什么想法我可以重新构造代码在我的布局内有一个好的旋转木马?在
只需删除
return carousel
行,您只能返回一次,因此您需要返回包含所有其他控件的小部件。在另外,您还将
Clock.schedule_interval
调用放在循环中,因此每秒都有大量的调用存在元素,结果是不管发生什么,它都将执行一个完整的循环。这个调用只做一次,所以把它移出循环。在大量编辑:
从GitHub下载最新版本,因为
load_next
问题已在那里得到解决。运行以下代码将导致正确的预期行为。在确保将图像文件更改为您正在使用的文件以及标签/文本。现在应该有用了。在
请参阅演示视频here。在
相关问题 更多 >
编程相关推荐