2016-11-09 14 views
0

Ich habe folgendes auf meiner KV Sprache:Kivy Trigger on_release automatisch anders als auf KV Sprache

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

Wenn ich auf meinem Registerkarte Elemente klicken, bekam ich eine richtige Nachricht (foo).

Aber wenn ich versuche, on_release Methode auf meinem Python-Code aufzurufen, funktioniert es nicht. Wie folgt aus:

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

Ich tue dies, weil, wenn ich tabbed_panel.switch_to(tabbed_panel.tab_list[1]) nennen, ist es nicht on_release Methode meiner Registerkarte Artikel aufrufen. Was mache ich falsch? Was muss ich tun, um es zu reparieren? Gibt es ein anderes Verhalten wie on_switch?

Antwort

1

Wenn Sie ein Ereignis eines Kivy-Widgets auslösen möchten, prüfen Sie zunächst, ob ein solches Ereignis verfügbar ist. Wenn ja, dann verwenden Sie einfach dispatch, um es auszulösen.

Beispiel:

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

on_release Verfahren Mittel auf Freigabe eines Touch (aus dem Bereich des Widgets), nicht auf die Freisetzung eines Screen von ScreenManager. switch_to ist nur zum Ändern einer Screen für eine andere.

+0

Sie helfen mir wieder? =) Danke, es funktioniert perfekt! – Caaarlos

Verwandte Themen