对于Windows和Linux,按钮的形状不同。我需要方形按钮。我该如何解决?
import tkinter as tk
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
buttons = [[None] * 3 for _ in range(3)]
for i in range(3):
for j in range(3):
but = buttons[i][j]
but = tk.Button(frame)
but.grid(row=i, column=j)
root.mainloop()
答案 0 :(得分:2)
默认情况下,按钮的宽度和高度以字符大小表示。因此,很难获得精确的平方。但是,我们可以做的是在按钮上添加一个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()
更新:
这是PhotoImage可以读取的带有字符串格式的1x1像素的版本。
现在使用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()
结果: