Ключевое слово //args// используется при обращении к функциям обратно вызова для передачи им аргументов. Это относится к аргументам, переданным обратному вызову.
Немножко усложним пример для [[kivy:app|app]]:
from kivy. app import App
from kivy.lang import Builder
KV = '''
BoxLayout:
orientation: 'vertical'
Button:
text: "Кнопка1"
on_press: app.press_button (*args)
Button:
text: "Кнопка2"
on_press: app.press_button (*args)
TextInput:
id:ti1
text: app.name
on_focus: self.insert_text ("Фокус" if args[1] else "Нет")
'''
class MainApp (App):
def build (self):
return Builder.load_string(KV)
def press_button (self, instance):
print (self)
self.root.ids.ti1.text="Вы нажали на кнопку: " + instance.text
if __name__ == '__main__':
MainApp().run()
Здесь у нас вместо метки используется текстовое поле (TextInput). Cобытие нажатия кнопки (''on_press''), будет обработано функцией ''press_button (*args)''. В скобках указаны аргументы, которые будут переданы в данную функцию (звездочка ''*'' говорит о том, что будут переданы все аргументы от текущего виджета или по сути сам виджет).
У виджета ''TextInput'' определено событие получения фокуса (//on_focus//). Для обработки этого события будет использоваться функция //insert_text// (вставить текст): ''self.insert_text ("Фокус" if args[1] else "Нет")''. Какой текст будет вставлен, зависит от значения //args[1]//. Если тестовое поле получит фокус, то в поле ввода будет вставлен текст "Фокус", если поле для ввода текста потеряет фокус, то будет
вставлено слово "Нет".
После запуска данного модуля получим следующий результат:
{{ :kivy:009.png?400 |}}