Установить значение переменной в зависимости от ввода, StringProperty kivy - PullRequest
1 голос
/ 01 февраля 2020

У меня проблема с переменной Kivy StringProperty, когда я пытаюсь обновить значение на основе входных данных.

, чтобы сделать его немного проще, чтобы я тоже мог понять (я немного новичок в этом).

TextTime1 = StringProperty()
TextTime2 = StringProperty()
x = 2

TextTime+x = "TEST"

Как мне заставить это работать?

Я пробовал

TextTime1 = StringProperty()
TextTime2 = StringProperty()
TextTimes = [TextTime1, TextTime2]
x = 2

TextTimes[x-1] = "TEST"

Не работает. Единственное, что работает, это:

TextTime1 = StringProperty()
TextTime2 = StringProperty()

TextTime2 = "TEST"

Как мне получить более «динамичный» 1015 * способ работы?

Ответы [ 3 ]

0 голосов
/ 01 февраля 2020

Я думаю, что ваше понимание переменных немного поверхностно. Например, TextTimes + x = "TEST" недопустим, потому что вы не говорите TextTimes2 = "TEST", вы говорите TextTimes + 2 = "TEST".

Ваш второй метод не совсем неверен .

TextTimes[x-1] = "TEST"
# = TextTimes[1] = "TEST"
# = TextTimes2 = "TEST" since TextTimes2 is the assigned index for that variable
# in your TextTimes list.
# However the correct list should be
TextTimes = [self.TextTimes1,self.TextTimes2] # if they are properties of an object

Пример:

class MyWidget(Widget):
    TextTimes1 = StringProperty()
    TextTimes2 = StringProperty()
    #TextTimes = [self.TextTimes1,self.TextTimes2]
    def __init__(self,**kwargs):
        super(MyWidget,self).__init__(**kwargs)

        self.TextTimes = [self.TextTimes1,self.TextTimes2]


    def some_function(self):
        x = 2
        self.TextTimes[x-1]="TEST" #This should change the value for TextTimes2 to "TEST"
0 голосов
/ 01 февраля 2020

Только так я смогу увидеть эту работу с моим ограниченным знанием об этом.

if x == 2:
    TextTime2 = "TEST"

Это просто неправильно и много кода, если у меня> 50 из них ...

0 голосов
/ 01 февраля 2020

Насколько я понимаю, вы пытаетесь заменить последнее значение в списке?

Возможно, вы могли бы заставить его работать так:

TextTime1 = StringProperty()
TextTime2 = StringProperty()

TextTimes = [TextTime1, TextTime2]

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