Python , пишу калькулятор на KIVY / кнопки не воспринимают значения

Nixie

Новичок
Пользователь
Июн 12, 2021
2
0
1
Москва
Добрый день!
Хочу попросить помощи.

Кнопки калькулятора при нажатии выводят только значение цифры "3" (а при выводе результата - задействованы только цифры "3", "6", "9").
А при нажатии на клавиши операций ("+", "-", "/", "*") используется только "+".

Почему код счиатывается таким образом? Где ошибка? :)

Вот код из main.py:
вот файл .kv:


Операционная система: Windows / Python 3.8
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Почему код счиатывается таким образом? Где ошибка?
Ошибка в том, что для кнопок с цифрами используется один и тот же id symbol и для кнопок с операциями тоже один id operation.
В результате в переменные symbol.text и operation.text попадают только последние установленные значения 3 и + соответственно.
Чтобы значения кнопок передавались корректно можно, например, немного изменить методы add_symbol() и add_operation():

Python:
def add_symbol(self, symbol):
    self.text_input.text += symbol

def add_operation(self, operation):
    self.text_input.text += operation
а в методе on_release у кнопок передавать в эти методы текст кнопки в качестве аргумента:
Код:
MyOwnLabel:
Button:
   text: '7'
   on_release:
       root.add_symbol(self.text)

MyOwnLabel:
Button:
    text: '*'
    on_release:
        root.add_operation(self.text)
 
  • Мне нравится
Реакции: Nixie

Nixie

Новичок
Пользователь
Июн 12, 2021
2
0
1
Москва
Чтобы значения кнопок передавались корректно можно, например, немного изменить методы add_symbol() и add_operation():

Спасибо вам большое!!!! Кнопки заработали) Оказывается, так легко все на самом деле )
 

Форум IT Специалистов