2013-09-24 27 views
0

我想在用戶按下tkinter gui應用程序中的按鈕時顯示一條消息,該程序正常工作(它具有用於用戶輸入的輸入類型,使用urllib2搜索歌曲歌詞並顯示條目中的文字),但按下按鈕後程序frezzes直到urllib的發出請求,我不能顯示一個消息如何在tkinter python中顯示反饋信息

這是監聽事件

self.button = Button(text="search",padx=4, pady=4, command=self.get_lyric) 
self.button.pack() 

按鈕並聽取該事件的方法

def get_lyric(self): 
    #LYRICS.COM 
    self.feedback.config(text="loading...") 

    site= str(self.get_googlesearch_link(self.input_text.get())) 
    #print site 
    page = urllib2.urlopen(site) 
    soup = BeautifulSoup(page) 
    main = soup.find(id="lyric_space") 
    # show lyrics 

我試過了一個標籤,但消息出現在urllib響應之後,我能做些什麼來解決這個問題?

回答

0

你將不得不採取不同的行動。除非您創建一個新的線程來執行輔助操作,否則Python一次只能處理一個操作。

嘗試:

import thread 

def button1(): 
    self.button = Button(text="search",padx=4, pady=4, command=self.get_lyric) 
    self.button.pack() 

def get_lyric(self): 
    #LYRICS.COM 
    self.feedback.config(text="loading...") 

    site= str(self.get_googlesearch_link(self.input_text.get())) 
    #print site 
    page = urllib2.urlopen(site) 
    soup = BeautifulSoup(page) 
    main = soup.find(id="lyric_space") 

thread.start_new_thread(button1,()) 
thread.start_new_thread(get_lyrics,()) 
+0

與執行線程任何運氣? – Benjooster

+0

感謝您的回覆,我試過代碼,但程序不工作,我有很多要了解線程(我通常使用JavaScript,只有一個線程) –