tkinter的界面输出问题

慕飒潇湘 2020-09-04 03:47:38
我写了一个爬虫,后面引入tkinter界面,由于新闻是时刻更新的,考虑到新闻不停更新要是用while True,而要把返回值给到botton(按钮)关联的函数,所以我在botton(按钮)关联的函数这块做死循环,程序可以正常运行,但是软件特别容易卡,点击了一次就不能点击其他,否则就位响应,这是什么原因

def prtdata(self):
"""
ruturn的结果展示到文本框内,botton关联内嵌函数prtdata
:return:
"""
while True:
data = get_news()
self.init_data_text.delete(1.0, END)
self.init_data_text.insert(1.0, "\n".join(data))
time.sleep(15)
self.__init_window_name.update()


...全文
433 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
庸了个白 2020-09-04
  • 打赏
  • 举报
回复
一般我们做gui的时候,用一个进程来维持主窗体,一些需要阻塞的功能函数,在主进程里开辟一个线程来做。
庸了个白 2020-09-04
  • 打赏
  • 举报
回复
没用过tkinter,但是这个问题很容易理解。 一个窗口是一个进程,同样的在while True也是属于这一个进程,进去while 循环里面是阻塞的,也就是说当前进程只能在while循环里。 当你点击窗口的时候,由于进程已经被阻塞,窗口无法维持,已经呈现的窗口自然就无处响应了

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧