Я не уверен, но я думаю, что вам нужно 3x3 с 9 кнопками внутри, поэтому я сделал код для 3x3.
Я использую два цикла for
, чтобы сделать это.И it
, чтобы получить значение из списка.Это проще.
Я использую random.shuffle
, чтобы получить список с элементами в случайном порядке.
Не присваивая Button
переменной button
, которую вы уже используете для сохранения списка.
import tkinter as tk
import random
button = ["1","2","3","4","5","6","7","8","9"]
random.shuffle(button)
root = tk.Tk()
i = 0
for x in range(3):
for y in range(3):
number = button[i]
btn = tk.Button(text=number, bg="black", activebackground="white", width=2)
btn.grid(row=y, column=x)
i += 1
root.mainloop()

РЕДАКТИРОВАТЬ: Я мог бы также использовать inter()
и next()
вместо i
import tkinter as tk
import random
button = ["1","2","3","4","5","6","7","8","9"]
random.shuffle(button)
root = tk.Tk()
it = iter(button)
for x in range(3):
for y in range(3):
number = next(it)
btn = tk.Button(text=number, bg="black", activebackground="white", width=2)
btn.grid(row=y, column=x)
root.mainloop()