我正在尝试在顶层窗口内的Tkinter中创建一个8x8的按钮网格。如果可能的话,我还想将这些按钮中的每一个添加到字典中。但是,当我尝试这样做时,窗口(在我尝试添加按钮之前打开)从未打开,Python启动器停止响应。 (对不起任何做得不好/效率低下的事情,这是我自己尝试编码的第一件事)
def new_game(x,y, difficulty):
global dimension
dimension = "%sx%s" %(x,y)
game=Toplevel(TS)
game.title("MineSweeper")
game.geometry(dimension)
game.title(difficulty)
game.configure(background="Gray")
my_frame = Frame(game)
my_frame.grid(row=0,column=0)
title= Label(game, text="Minesweeper",bg="Gray",fg="red", font=("Helvetica",18, "bold"))
title.pack()
x=0
y=0
#Creating Easy Game Buttons
easy_buttons=dict({})
if difficulty == "Easy":
for num in range (64):
easy_buttons[num]=[Button(game,text="temp").grid(row=x,column=y)]
y+=1
if y==8:
y=0
x+=1
答案 0 :(得分:1)
根据effbot:
警告:切勿在同一主窗口中混合网格和打包。 Tkinter很乐意度过余生,试图协商一个管理人员都满意的解决方案。而不是等待,杀死应用程序,再看看你的代码。一个常见的错误是对某些小部件使用了错误的父级。
我建议您稍微更改布局。您可以创建一个2行x 1列网格。第一行是title
,第二行是Frame
。然后,您可以将{8}网格按钮放在Frame
。
您还无意中又进入了另一个tkinter
地雷 - .grid
方法总是返回None
,因此您的词典只会保留一个一堆[None]
值,没有任何按钮。