【发布时间】:2021-04-28 15:47:30
【问题描述】:
我正在尝试使用 tkinter 制作一个简单的棋盘,但在每一行之间都有一些空白空间,即使在扩展时也没有使用。问题似乎来自配置列和行,但我需要它使大小保持不变。我该如何解决?这是我的代码:
from tkinter import *
import tkinter as tk
window = tk.Tk()
for i in range(8):
window.columnconfigure(i, minsize=75)
window.rowconfigure(i, minsize=75)
for j in range(8):
if i % 2 == 1 and j % 2 == 1:
frame = tk.Frame (
master=window,
bg="white",
)
frame.grid(row=i, column=j)
label = tk.Label(master=frame, text="White sq", background="white", foreground="white")
label.pack(padx=12, pady=15)
elif i % 2 == 1 and j % 2 == 0:
frame = tk.Frame (
master=window,
bg="black",
)
frame.grid(row=i, column=j)
label = tk.Label(master=frame, text="Black sq", background="black")
label.pack(padx=12, pady=15)
elif i % 2 == 0 and j % 2 == 1:
frame = tk.Frame (
master=window,
bg="black",
)
frame.grid(row=i, column=j)
label = tk.Label(master=frame, text="Black sq", background="black")
label.pack(padx=12, pady=15)
else:
frame = tk.Frame (
master=window,
bg="white",
)
frame.grid(row=i, column=j)
label = tk.Label(master=frame, text="White sq", background="white", foreground="white")
label.pack(padx=12, pady=15)
window.mainloop()
【问题讨论】:
-
您是否尝试将
bg=0, highlightthickness=0添加到tk.Frame(...)? -
@TheLizzard 你的意思是
bd? -
@CoolCloud 你是对的。我的坏:D。
-
我也会考虑使用一个填充了正方形的
Canvas小部件,例如here。 -
尝试在
frame.grid(...)中添加sticky="nsew"。
标签: python-3.x tkinter