Кнопки по умолчанию принимают ширину и высоту с точки зрения размера символов. Из-за этого трудно получить точный квадрат. Однако мы можем добавить к кнопке изображение 1x1, и вместо этого кнопка будет указывать ширину и высоту в пикселях.
import tkinter as tk
root = tk.Tk()
tk.Frame(root)
my_image = tk.PhotoImage(file="./Colors/1x1.gif")
for x in range(3):
for y in range(3):
tk.Button(text="", image=my_image, height=40, width=40, relief="groove").grid(row=x, column=y)
root.mainloop()
Обновление:
Вот версия с разрешением 1x1 в строковом формате, которую может прочитать PhotoImage.
Теперь с ompound="center"
вы можете использовать текст с изображением 1x1 в той же кнопке.
import tkinter as tk
root = tk.Tk()
tk.Frame(root)
my_image = tk.PhotoImage("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=")
for x in range(3):
for y in range(3):
tk.Button(text="X", image=my_image, height=40, width=40, relief="groove", compound="center").grid(row=x, column=y)
root.mainloop()
Результаты:
