Я новичок в Python, и у меня возникли проблемы с использованием макета пакета. У меня 40 писем, и я хочу сделать 4 строки, каждая из которых содержит 10 букв.tkinter: как использовать компоновку пакетов
Вот мой код:
import random
from tkinter import *
root = Tk()
w = Label(root, text="GAME")
w.pack(side=TOP)
# there are 40 tiles
tiles_letter = ['a', 'b', 'c', 'c', 'c', 'd', 'd', 'e', 'e', 'e', 'e', 'f', 'f', 'g', 'g', 'h', 'i', 'j', 'k', 'k', 'a', 'b', 'c', 'c', 'c', 'd', 'd', 'e', 'e', 'e', 'e', 'f', 'f', 'g', 'g', 'h', 'i', 'j', 'k', 'k']
tiles_make_word = []
def add_letter():
if not tiles_letter:
return
rand = random.choice(tiles_letter)
tiles_make_word.append(rand)
print(len(tiles_make_word))
tile_frame_column = Label(root, text=rand, bg="red", fg="white")
tile_frame_column.pack(side=LEFT, padx=5, pady=10)
tiles_letter.remove(rand) # remove that tile from list of tiles
if len(tiles_make_word) % 10 == 0:
separator = Frame(height=100)
separator.pack(fill=X, padx=5, pady=5)
root.after(500, add_letter)
root.after(500, add_letter)
root.mainloop()
Проблема после каждых 10 писем он создает новую строку, но это не правильно укладывать. Он больше похож на зигзаг или по диагонали, вместо того, чтобы находиться прямо под указанным рядом. Может кто-нибудь, пожалуйста, скажите мне, что не так с кодом и как я могу это исправить? Я запутался, пытаясь создать новые строки с методом «после». Может быть, ошибка имеет какое-то отношение к этому. Надеюсь, это просто. Я застрял на этом часами.
Thanks
Спасибо! он отлично работает! спасибо за вашу помощь и понимание – user2456977