#python #kivy
#python #kivy
Вопрос:
я новичок в Kivy, у меня есть проект, в котором много ползунков для ввода значения. итак, после отображения экрана результатов есть кнопка, которая переходит на главный экран, а затем сбрасывает значение всех ползунков на 0. вот мой main.py код
class result(Screen):
g1 = NumericProperty(0)
g2 = NumericProperty(0)
g3 = NumericProperty(0)
def homebtn(self):
self.g1.value = 0
self.g2.value = 0
self.g3.value = 0
sm.current = 'home'
тогда я получил ошибку:
File "/home/abrory7/PycharmProjects/penyakitPencernaan/main.py", line 765, in home
self.g1.value = 0
AttributeError: 'int' object has no attribute 'value'
Комментарии:
1. Когда вы писали
self.g1.value
,g1
это переменная экземпляра, но вы указалиg1 = NumericProperty(0)
ее как переменную класса. Возможно, в этом проблема2.
self.g1 = 0
Внутри класса должно быть достаточно его установки.3. @Shivam Jha попытался удалить
g1 = NumericProperty(0)
строку, но она возвращаетAttributeError: 'result' object has no attribute 'g1'
4. @TaufiqAbrory вы должны написать
g1.value = 0
вместоself.g1.value = 0)
в своемhomebtn()
методе5. я обновил то, что нашел, до ответов. ссылка на экран, на котором находятся ползунки,
get_screen()
сработала как шарм!
Ответ №1:
Вы можете присваивать значения непосредственно свойству, поэтому это должно работать и сохранять их как свойство:
class result(Screen):
g1 = NumericProperty(0)
g2 = NumericProperty(0)
g3 = NumericProperty(0)
def homebtn(self):
self.g1 = 0
self.g2 = 0
self.g3 = 0
sm.current = 'home'
Комментарии:
1. Спасибо! ошибки не отображались после того, как я попробовал это, но проблема остается в том, что значение ползунка все еще не сброшено на 0
2. Если это помогло проверить его как ответы или показать свой код слайдера, если вы хотите, чтобы мы помогли
Ответ №2:
итак, я просто пробую некоторые возможности, которые я мог бы попробовать, и я думаю, что нашел, как решить мою проблему. я попытался сослаться на имя экрана get_screen('screen_name')
следующим образом:
class result(Screen):
def homebtn(self):
self.manager.get_screen('page1').g1.value = 0
self.manager.get_screen('page2').g2.value = 0
self.manager.get_screen('page3').g3.value = 0
sm.current = 'home'
после того, как я нажимаю кнопку «Домой», значения ползунков теперь сбрасываются на 0