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()