2016-11-09 58 views
0

自动不同,我有以下我的KV语言:Kivy触发on_release比KV语言

TabbedPanelItem: 
text: 'Item 2' 
on_release: print('foo') 

如果我点击我的标签项目,我得到了正确的消息(富)。

但是,如果我尝试在我的python代码上调用on_release方法,它不起作用。就像这样:

else: 
    tabbed_panel = self.parent.parent 
    tabbed_panel.tab_list[1].on_release() 

我这样做,因为如果我叫tabbed_panel.switch_to(tabbed_panel.tab_list[1]),它不叫我的标签项目on_release方法。 我在做什么错?我必须做什么来修复它?是否有其他一些行为,如on_switch

回答

1

如果要触发Kivy小部件的事件,请首先检查是否有这样的偶数可用。如果是,那么只需使用dispatch来触发它。

实施例:

tabbed_panel.tab_list[1].dispatch('on_release') 

on_release方法意味着在触摸(从微件的区域)的释放,而不是从一个ScreenManagerScreen的释放。 switch_to仅用于将另一个Screen更改为另一个。

+0

你又帮我了吗? =) 谢谢,它完美的作品! – Caaarlos