python / tkinter добавляет отдельные буквы слова к метке при нажатии кнопки - PullRequest
0 голосов
/ 29 апреля 2018
from tkinter import *

# Create a window
spell_window = Tk()

# Give the window a title
spell_window.title('Spell Table')


table_Var = StringVar()

## table = ['T', 'a', 'b', 'l', 'e'] ## I think it needs to move through a list???

def spell_table():
    s_table = monty_Var.get()
    s_table += 'T' #Currently adds a 'T' each time the button is pressed
    monty_Var.set(s_table)



the_label = Label(spell_window, width = 10, textvariable = table_Var,
                  font = ('Arial', 30), bg = 'red')

the_button = Button(spell_window, text = 'Next letter', command = spell_table)

the_label.pack(padx = 0, pady = 0)

the_button.pack(padx = 40, pady = 0)

Итак, в основном я создал ярлык и кнопку, и мне нужно прописать слово «Таблица», нажав кнопку «Следующая буква». Просто не уверен, как заставить его перемещаться по списку таблиц и добавлять их в метку.

1 Ответ

0 голосов
/ 29 апреля 2018

Вот фиксированный код:

from tkinter import *

spell_window = Tk()

spell_window.title('Spell Table')

table = ['T', 'a', 'b', 'l', 'e']
count = 1

def spell_table():
   global count, table
   the_label.config(text=table[:count])

   if count < len(table):
      count += 1



the_label = Label(spell_window, width = 10, text = "", font = ('Arial', 30), bg = 'red')

the_button = Button(spell_window, text = 'Next letter', command = spell_table)

the_label.pack(padx = 0, pady = 0)

the_button.pack(padx = 40, pady = 0)

spell_window.mainloop()

Я удалил бесполезные переменные и добавил переменную count, которая увеличивается с каждым кликом. И да, вам нужен список для этого, кортеж тоже подойдет. Я изменил текст the_label с

'textvariable = ' to 'text = ""'.

Я также нарезал список по «количеству». [: count] = что-либо до значения индекса count. Кроме того, оператор if предназначен для эффективности, потому что нам не нужно выделять больше места для переменной после того, как она превысила значение индекса в списке 'table'. Вам также не хватало

spell_window.mainloop()

в конце. Надеюсь, это поможет!

...