python kivy, label, button

Помогите пожалуйста как сделать чтобы список выводился по очереди при нажатии конпки ' Правда или действие '

    def ActionOrTruth(self, instance):
        players = [ self.name_one.text,
                    self.name_two.text,
                    self.name_three.text,
                    self.name_four.text ]
            
        self.label = Label(text = str(players), pos = (305, 325))
        self.add_widget(self.label)

        play = ['Правда', 'Действие']
        start = random.choice(play)

        instance.text = start

Ответы (2 шт):

Автор решения: дэнчик

вот мой код, думаю тут наглядно показано.

from kivy.lang import Builder
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

from collections import deque # главное

text_scrolls = []
q = deque()
q.append('Когда был первый поцелй?')
q.append('Что тебе нравится ?')
q.append('Ты голоден ?')

e = deque()
e.append('Бегай')
e.append('Поцелуй руку')
e.append('Играй роль босса ')

Builder.load_string("""
<Gex>:
  orientation: 'vertical'
  Button:
    text: 'Правда'
    on_press: root.upd()

  Button:
    text: 'Действие'
    on_press: root.upd_1()

  Label:
    id: fer
    text:"..."

""")
class Gex(BoxLayout):

  def upd(self):
    self.ids['fer'].text = str(q.popleft())

  def upd_1(self):
    self.ids['fer'].text = str(e.popleft())

class FakeApp(App):
  def build(self):
    return Gex()

FakeApp().run()
→ Ссылка
Автор решения: дэнчик

Вот на основе алгоритма!

from kivy.lang import Builder
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

numbering_1 = -1
numbering_2 = -1
limit_1 = 0
limit_2 = 0


text_scrolls_1 = ['Когда был первый поцелй?','Что тебе нравится ?',
'Ты голоден ?',"ggggg","wwwww",'rrrr']

text_scrolls_2 = ["trt","ttrtrxxx","trtrtds","tfdfdffd"]

Builder.load_string("""
<Gex>:
  orientation: 'vertical'
  Button:
    text: 'Правда'
    on_press: root.upd()

  Button:
    text: 'Действие'
    on_press: root.upd_1()

  Label:
    id: fer
    text:"..."

""")
class Gex(BoxLayout):
  def upd(self):
    global numbering_1
    limit_1 = len(text_scrolls_1)
    if numbering_1 < limit_1 -1:
      numbering_1 += 1
      self.ids['fer'].text = str(text_scrolls_1[numbering_1])
    else:
      numbering_1= 0
      self.ids['fer'].text = str(text_scrolls_1[numbering_1])

  def upd_1(self):
    global numbering_2
    limit_2 = len(text_scrolls_2)
    if numbering_2 < limit_2 -1:
      numbering_2 += 1
      self.ids['fer'].text = str(text_scrolls_2[numbering_2])
    else:
      numbering_2 = 0
      self.ids['fer'].text = str(text_scrolls_2[numbering_2])

class FakeApp(App):
  def build(self):
    return Gex()


FakeApp().run()
→ Ссылка