Я хочу изменить текст метки, но я не могу этого сделать, я вижу, как это меняется на оболочке, но не в пользовательском интерфейсе. Я даже напрямую изменяю текст метки, ссылаясь на его идентификатор, но все же не обновляя его. Кто-нибудь знает, как это сделать?Kivy - Почему ярлык не обновляется?
class MainApp(Screen, EventDispatcher):
title = "Top 10 Plays of 2015"
def __init__(self,*args,**kwargs):
super(MainApp, self).__init__(*args, **kwargs)
def change_curr_title(self, title, *args):
self.title = title
self.ids.lblTitle.text = self.title
print(self.ids.lblTitle.text)
pass
class OtherVideos(BoxLayout, EventDispatcher):
def __init__(self, *args, **kwargs):
super(OtherVideos,self).__init__(*args, **kwargs)
self.loadVideos()
def loadVideos(self):
self.clear_widgets()
con = MongoClient()
db = con.nba
vids = db.videos.find()
vidnum = 1
for filename in vids:
myid = "vid" + str(vidnum)
getfilename = filename['filename']
button = Button(id=myid,
text=getfilename,
color=[0,0.7,1,1],
bold=1)
button.bind(on_release=partial(self.change_Title, getfilename))
self.add_widget(button)
vidnum += 1
def change_Title(self, title, *args):
main = MainApp()
main.change_curr_title(title)
Это строительство моего kivy:
<MainApp>:
....
BoxLayout:
....
BoxLayout:
....some widgets
BoxLayout:
OtherVideos:
...this is where the buttons are generated...
BoxLayout:
Label:
id: lblTitle
text: root.title
Есть в любом случае, чтобы загрузить весь свой код на этот счет? как и сам файл, поэтому вы, ребята, можете посмотреть на него.
EDIT: Я могу легко обновить метку, когда я делаю новый метод, как это без параметра и связывания его с кнопкой через kivy
def update_label(self):
self.ids.lblTitle.text = "New Title"
Я не знаю, почему кнопки с событиями создан динамически не работает.
Спасибо ~ дайте мне загрузить файл. – KPA
@KPA Измените свой вопрос, показывая, где 'OtherVideos' помещен в файл kv - для будущих читателей. – jligeza
Готово. Надеюсь, ты поможешь мне :) – KPA