1

我已经布置了一个框架,其中一部分是:

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都呈现时。

我根本没有看到可能导致这种情况的原因,但我认为这对其他人来说是显而易见的。

4

1 回答 1

2

searchforticket(ticketfieldentry.get()引起立即呼叫。更改如下:

ticketfieldentry.bind("<Double-Button-1>", lambda e: searchforticket(ticketfieldentry.get()))
于 2013-06-20T05:28:31.127 回答