2013-09-21 182 views
0

我的問題是,我第一次運行該程序時,它的工作正常,但是當我修改我的查詢並點擊「Go!」時按鈕,沒有任何反應。我希望它做了同樣的事情,以便當我輸入一個新的查詢時,它重新加載了與最後一個查詢相對應的信息的文本框。Tkinter只能工作一次

from Tkinter import * 
root = Tk() 

#Here's an entry box 
search_label = Label(root, text="Enter search here:") 
search_entry = Entry(root) 
search_label.pack() 
search_entry.pack() 

#This happens when you hit "go!" 
def go(): 
    #It opens a text box in which the answer required is written. 
    query=search_entry.get() 
    bibliography = Text(root) 
    bibliography.insert(INSERT, answer_box(query)) 
    bibliography.pack() 

#This is the "go!" button 
go_button = Button(root, text="Go!", width=10, command=go) 
go_button.pack() 

root.mainloop() 

有些想法?

+1

'answer_box' is undefined - 我認爲這不是您的完整代碼?另外,當我用'query'替換'answer_box(query)'時,我可以運行它,但重複使用'go_button'會導致新的文本框被添加到下面的新查詢文本中。你確定沒有發生?它會發生在你的屏幕上嗎?另外,你是否打算在每次點擊'go_button'時創建一個新的文本框? – Brionius

回答

1

您的代碼每次點擊該按鈕時都會創建文本小部件。而不是它,只創建一次文本小部件。然後,清除它並插入答案文本。

from Tkinter import * 
root = Tk() 

search_label = Label(root, text="Enter search here:") 
search_entry = Entry(root) 
search_label.pack() 
search_entry.pack() 

def answer_box(query): 
    return query 

def go(): 
    query=search_entry.get() 
    bibliography.delete('1.0', END) 
    bibliography.insert(INSERT, answer_box(query)) 

go_button = Button(root, text="Go!", width=10, command=go) 
go_button.pack() 
bibliography = Text(root) 
bibliography.pack() 

root.mainloop()