Tkinter:尝试创建按钮网格,然后将每个按钮添加到字典中

时间:2016-02-15 02:59:48

标签: python tkinter

我正在尝试在顶层窗口内的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

1 个答案:

答案 0 :(得分:1)

根据effbot

  

警告:切勿在同一主窗口中混合网格和打包。 Tkinter很乐意度过余生,试图协商一个管理人员都满意的解决方案。而不是等待,杀死应用程序,再看看你的代码。一个常见的错误是对某些小部件使用了错误的父级。

我建议您稍微更改布局。您可以创建一个2行x 1列网格。第一行是title,第二行是Frame。然后,您可以将{8}网格按钮放在Frame

您还无意中又进入了另一个tkinter地雷 - .grid方法总是返回None,因此您的词典只会保留一个一堆[None]值,没有任何按钮。