2016-11-09 84 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