zoukankan      html  css  js  c++  java
  • 关于python Tk中实时的输出.

    源码如下:

    import time
    from Tkinter import *
    def run():
    
    while True:
    
    txt.insert(END,'...')
    
    print '...'
    
    time.sleep(10)
    root = Tk()
    txt = Text(root)
    txt.pack()
    Button(root,text='Run',command = run).pack()
    root.mainloop()
    

    我想达到的目的:
    在这个txt中没10s输出 "...".
    但python中一定要等到这个 函数运行完成以后才会在txt中输入,类似这种循环就不会停下来..
    而在python提供的 shell里面 print又可以实时的打印..

    思路是对的,只不过你没调用更新函数,见下面标注。

    # -*- coding: gb2312 -*-
     import time
     from Tkinter import *
     def run():
      
    while True:
      
        txt.insert(END,'...')
      
        txt.update()#我指的是加这句代码。
      
        #下面两句,回复显示后对不齐,请注意,与上面两句平行
    print  '...'#这句没什么用,输出到控制台了,和Tk没关系
    time.sleep(10)
     root = Tk()
     txt = Text(root)
     txt.pack()
     Button(root,text='Run',command = run).pack()
     root.mainloop()
    

      

    另外,介意用类封装一下更好管理。
    代码见下:
    # -*- coding: gb2312 -*-
     import time
     from Tkinter import *
      
    class Display:
      def __init__(self):
       self.root = Tk()
       self.text = Text(self.root)
       self.text.pack()
       self.butt = Button(self.root,text='Run',command = self.run)
       self.butt.pack()
      def run(self):
       while True:
        self.text.insert(END, '...')
        self.root.update()#更新以后才能看到变化
        time.sleep(1)#这里为了快点看到效果,改为了1S输出一次
      
    if __name__ == '__main__':
      D = Display()
      mainloop()
    

      

    以上代码均已在python2.5下运行。
  • 相关阅读:
    Eclipse安装aptana
    mysql获取下一篇和上一篇文章的ID
    Java回顾之Spring基础
    纯CSS实现各类气球泡泡对话框效果
    百度编辑器ueditor的简单使用
    实施接口
    Java快速教程
    Java GUI程序设计
    JAVA之关于This的用法
    Java 数组基础
  • 原文地址:https://www.cnblogs.com/anita-harbour/p/9315926.html
Copyright © 2011-2022 走看看