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 に答える