0

我想在用户按下 tkinter gui 应用程序中的按钮时显示一条消息,该程序工作正常(它具有用户输入的条目类型,使用 urllib2 搜索歌词并在条目中显示文本),但按下后程序冻结的按钮,直到 urllib 发出请求,我无法显示消息

这是监听事件的按钮

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 响应后出现消息,我该怎么做才能解决这个问题?

4

1 回答 1

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, ())
于 2013-09-24T14:47:47.970 回答