#python #kivy #kivy-language
#python #kivy #kivy-язык
Вопрос:
У меня возникли некоторые трудности с пониманием взаимосвязи между kivy и python.
Я пытаюсь сделать что-то очень простое, в качестве первого шага, и было бы здорово, если бы кто-нибудь мог показать пример: как я могу сохранить входные данные в списке python после того, как пользователь введет данные и нажмет «ввод»? Спасибо
Ответ №1:
Пример этого. Пользователь может ввести 3 вещи, и они сохраняются в массиве. Если вы хотите, чтобы пользователь вводил что-то одно и сохранял его в массиве, вам придется разделить ввод.
result = []
for i in range(3):
answer = input()
result.append(answer)
print(result)
ПРИМЕЧАНИЕ: input()
находится raw_input()
в python2.x
В kivy
:
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
class Screen(GridLayout):
def __init__(self, **kwargs):
super(Screen, self).__init__(**kwargs)
self.input = TextInput(multiline=False)
self.add_widget(self.input)
self.input.bind(on_text_validate=self.print_input)
def print_input(self, value):
print(value.text)
class MyApp(App):
def build(self):
return Screen()
if __name__ == '__main__':
MyApp().run()
Этот простой скрипт предоставит вам поле ввода, и когда вы нажмете enter, он выведет его текст на терминал. При желании вы можете легко сохранить его в списке.
Комментарии:
1. Спасибо @Gabor, я знаю, как это делается с помощью raw_input . Я борюсь с kivy.
2. Сначала
kivy
вам нужно будет создать какой-то фрейм, в котором пользователь может что-то вводить. Я почти уверен, что для этого есть учебные пособия, поскольку это не так просто3. Да, в этом-то все и дело. Существует несколько руководств, но ни одно из них не является особенно ясным, или полным, или точно решает эту проблему. В любом случае спасибо.
4. Идеальный. Я пропустил строку input.bind. Теперь это работает — спасибо!
5. В качестве последующего вопроса, как я могу это сделать, используя язык kivy? Допустим, у меня есть несколько входных переменных, которые имеют некоторые схожие свойства — как я могу создать универсальный виджет из файла kv и вызвать его из Python?