Я давно застрял в этом, и я провел много исследований, но не нашел ничего полезного.метки tkinter в рамке с использованием сетки
Я пытаюсь разместить ярлыки - состоящие из букв 'a' - 'j' в моем кадре. Каждые несколько секунд я хочу, чтобы следующее письмо появилось рядом с предыдущей буквой. Но происходит то, что каждые несколько секунд новое письмо заменяет предыдущее письмо, то есть я больше не вижу старых писем. Я пробовал много вещей, и ничего не работает. Кто-то может помочь?
Я пробовал делать сетку всех ярлыков внутри рамки в родительском фрейме, но это слишком сложно для меня. Есть ли способ исправить это?
from tkinter import *
from ttk import *
import random
root = Tk()
# there are 10 tiles
tiles_letter = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
tiles_make_word = []
content = Frame(root)
frame = Frame(content, borderwidth=5, relief="ridge", width=200, height=300)
namelbl = Label(content, text="Enter words: ")
name = Entry(content)
ok = Button(content, text="Okay")
cancel = Button(content, text="Cancel")
content.grid(column=0, row=0)
frame.grid(column=0, row=0, columnspan=12, rowspan=12)
namelbl.grid(column=0, row=12)
name.grid(column=1, row=12, columnspan=2)
ok.grid(column=12, row=0)
cancel.grid(column=13, row=0)
def add_letter():
global i
i=0
if not tiles_letter:
return
rand = random.choice(tiles_letter)
tiles_make_word.append(rand)
tile_frame_column = Label(content, text=rand)
tile_frame_column.grid(column=i, row=0)
tiles_letter.remove(rand) # remove that tile from list of tiles
i=i+1
root.after(2000, add_letter)
root.after(2000, add_letter)
root.mainloop()
Ok, закончил код для вас, жаль, что потребовалось некоторое время, и это не очень удивительно, но вы можете легко персонализировать его! – W1ll1amvl
Спасибо, это здорово! не волнуйся, ты сделал мне одолжение. Я вечно благодарен. – user2456977