2013-06-20 49 views
1

我已经制定了一个框架,其中一部分是:的Tkinter绑定立即执行时,脚本运行

ticketID = IntVar() 
ticketID.set(ticket) 
ticketfield = Label(titleframe, text = 'Ticket : ') 
ticketfield.grid(row=0, column=0) 
ticketfieldentry = Entry(titleframe, textvariable=ticketID) 
ticketfieldentry.grid(row=0, column=1) 
ticketfieldentry.bind("<Double-Button-1>", searchforticket(ticketfieldentry.get())) 

而且一个占位符:

def searchforticket(ticket): 
    searchforstring = "This would search for ticket %s" % ticket 
    tkMessageBox.showinfo('Search by ticket', message = searchforstring) 

Ticket被传递到脚本在运行时间,或假定None。我认为上面会做的是创建一个Entry框,可以显示票号,也可以直接输入票号。进入后,双击将弹出searchforticket函数。

然而,当我运行该脚本,searchforticket立即运行,与任何被分配到ticket然后我点击过去tkMessageBox后,当包含ticketfieldentry和其他一切的窗口中呈现。

我根本没有看到什么可能导致这种情况,但我认为这是对别人显而易见的事情。

回答

2

searchforticket(ticketfieldentry.get()立即致电。更改如下:

ticketfieldentry.bind("<Double-Button-1>", lambda e: searchforticket(ticketfieldentry.get()))