Использование kivy виджетов TextInput для записи данных в файл с помощью модуля базы данных - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь создать свое первое приложение, используя Python и Kivy. Я пытаюсь создать простое приложение для упражнений, используя это руководство GUI в качестве исходного шаблона https://techwithtim.net/tutorials/kivy-tutorial/setup/.

. В настоящее время я получил свой код до того момента, когда я введу данные в виджеты ввода текста и нажмите кнопку отправки, он ничего не делает и не выводит ошибок. В конце я помещаю ответную печать «success» или «fail», и она просто возвращает «fail» в моем терминале.

Я использую четыре файла; main.py, database.py, my.kv & упражнения.txt (мое местоположение записи), которые находятся в одном каталоге.

Вот наиболее важные части моего кода; (следующее из main.py)

class ArmMenu(Screen):
    exercise = ObjectProperty(None)
    weight = ObjectProperty(None)
    reps = ObjectProperty(None)
    sets = ObjectProperty(None)

    def submit(self):
        if self.weight.text != "" and self.reps.text != "" and self.sets.text != "":
            db.save()

sm = WindowManager()
db = DataBase("exercises.txt")
kv = Builder.load_file("my.kv")

(следующее из database.py)

class DataBase:
def __init__(self, filename):
    self.filename = filename
    self.file = None
    self.exercises = None
    self.load()

def load(self):
    self.file = open(self.filename, "r")
    self.exercises = {}

    for line in self.file:
        exercise, weight, reps, sets = line.strip().split(";")
        self.exercises[exercise] = (weight, reps, sets)

    self.file.close()

def save(self):
    with open(self.filename, "w+") as f:
        for exercise in self.exercises:
            f.write(exercise + ";" + self.exercises[exercise][0] + ";"
            + self.exercises[exercise][1] + ";" + self.exercises[exercise][2] + "\n")
            return
            print("saved")
        else:
            print("failed")

Эта функция вызывается из my.kv "root .submit", связанного с кнопкой.

Я пытаюсь добиться записи массива строк в файл в одну строку в формате "имя упражнения [id ] + [значение веса] + [количество повторений] + [устанавливает значение]

Я впервые пишу в стеке, и я очень новичок в программировании, поэтому заранее прошу прощения, если я что-то не сказал или не сделал так плохо.

Не думаю, что я что-то упустил, но если я, пожалуйста, дайте мне знать и напишите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...