tkinter如何自动刷新内容

xghyxx 2012-10-14 08:22:22
我想实现的功能是:不断循环1到100之间的随机数,如果随机数大于50,就把tkinter里面以前的内容清除,显示这个新的随机数,用如下代码,但是实现不了,请问问题出在哪里,或者有没有更好的方法实现这个功能。谢谢!!

# -*- coding: cp936 -*-

import Tkinter
import random

def suijishu(a,b):
return random.randint(a, b)#返回[a,b]之间的整数(随机数)

top = Tkinter.Tk()

t = Tkinter.Text(top,width=170,height='40',font='Fixdsys -15')
t.pack(side = 'left')
a=1
b=100
while True:
shuchu=suijishu(a,b)
if shuchu>50:
t.delete('1.0','end')
t.insert('end',shuchu)


Tkinter.mainloop()
...全文
1914 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2012-10-14
  • 打赏
  • 举报
回复
gui线程里要尽快执行完工作返回消息机制里,耗时的工作要在其他线程里做,一般简单的重复的工作可用after()函数定时触发:
import Tkinter
import random

def suijishu(a, b):
t.delete(1.0, 'end')
t.insert('end', random.randint(a, b))
t.after(500, suijishu, a, b)

top = Tkinter.Tk()

t = Tkinter.Text(top)
t.pack(expand=1, fill='both')
suijishu(51, 100)

top.mainloop()
Gloveing 2012-10-14
  • 打赏
  • 举报
回复
由于你的while死循环,Tkinter.mainloop()不会执行,界面根本不会显示
HuaWuQue678 2012-10-14
  • 打赏
  • 举报
回复
我用的是wxpython

37,743

社区成员

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

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