Как сделать нажатием кнопки перебор данных из списка поочередно
Хочу выводить данные из списка нажатием кнопки поочередно (по кольцу), у меня выводит все сразу!
Update:
А нужно по одному в одном и том же месте.
Что изменить?
from tkinter import *
def ok():
list = ['Саша', 'Маша', 'Коля', 'Вася', 'Игорь']
for i in list:
l = Label(root, text=i).grid()
root = Tk()
root.geometry(f"150x150+500+150")
root.resizable(False, False)
b = Button(root, text='GO', command=ok)
b.grid(row=1, column=1, sticky='e')
root.mainloop()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант:
from tkinter import *
def ok(i):
global num
_list = [1, 2, 3, 4, 5]
# for i in list:
l = Label(root, text=_list[i]).grid()
num += 1
if num > 4:
num = 0
root = Tk()
root.geometry(f"150x150+500+150")
root.resizable(False, False)
num = 0
b = Button(root, text='GO', command=lambda: ok(num))
b.grid(row=1, column=1, sticky='e')
root.mainloop()
Update
from tkinter import *
def ok(i):
global num
_list = ['Саша', 'Маша', 'Коля', 'Вася', 'Игорь']
# for i in list:
# l = Label(root, text=_list[i]).grid()
l = Label(root, text=_list[i]).grid(column=1,row=2)
num += 1
if num > 4:
num = 0
root = Tk()
root.geometry(f"150x150+500+150")
root.resizable(False, False)
num = 0
b = Button(root, text='GO', command=lambda: ok(num))
b.grid(row=1, column=1, sticky='e')
root.mainloop()

