Python:如何使用for循环在多个赋值中获得正确的按钮引用?

时间:2014-06-30 22:45:54

标签: python tkinter

我是初学程序员,我想通过游戏来学习。我正在尝试与用户点击按钮(使用Tkinter制作)在战斗机周围放置战舰。当我点击按钮时,我得到一个错误说明如下。如何在字典中选择正确的按钮= {}?错误说:

  

追踪(最近一次通话):    文件“C:\ Python Codes \ Battleship.py”,第29行,in      选择()   TypeError:choice()只需要2个参数(给定0)

以下是我使用的代码:

from Tkinter import *
import Tkinter as tk
screen = tk.Tk(className = "Battle Ship Game" )
screen.geometry("300x300")
screen["bg"] = "white"

line1= list()

def choice(x,y) :
    global choises
    choises = {}

    choises[x] = y
    print choises

def buildaboard1(screen) :
    x = 20
    for n in range(0,10) :
        y = 20
        for i in range(0,10) :
            line1.append(tk.Button(screen ))
            line1[-1]["command"] = (lambda n : choice (x , y))
            line1[-1].place( x = x , y = y+20 , height = 20 , width = 20 )
            y = y+20
        x = x +20


buildaboard1(screen)
choice()
screen.mainloop()

1 个答案:

答案 0 :(得分:1)

这种方式Tkinter一次将xy的值分配给ab
按下按钮时choice()可以使用它。

line1[-1]["command"] = (lambda a=x, b=y: choice (a , b))

这种方式Button想要在点击它时从xy获取值 但是xy不存在。

line1[-1]["command"] = (lambda: choice (x , y))