gui-Python-Tkinter请问有什么办法可以在事件处理过程中,即时刷新Text的信息?

问题描述

Python-Tkinter请问有什么办法可以在事件处理过程中,即时刷新Text的信息?

新手刚学了Thinter,我用了for循环往文本框里添加信息,,用的insert方法,点击按钮后结果如下图所示,,表面上看不出控制台的结果跟Text组件的结果有啥区别,,但是事实上左边的Text的信息是4秒后才把添加的四条信息刷新出来的,,然而看到信息里面的用time方法打印出的时间戳确实方法已经处理过……
也就是说事件发生-循环语句中处理好但是要方法结束后,事件产生的组件信息才会刷新出来?

def test():
        for i in range(1,5):
            i=i*1.0
            print(time.time())
            t4.insert(i,'hello--'+str(time.time())+'n')
            if i==4:
                break
            time.sleep(1)
            print(time.time())
b2=Button(frm_l,width=10,command=test)

那请问有什么办法可以在事件处理过程中,即时刷新Text的信息?

补充一下,其实搞这个Text信息,,就是为了使用时候可以看到程序的一些运行情况。。我是想把方法的运行情况的返回值(把原本打印到控制台的提示信息变成方法的返回值)都直接显示到Text文本框里面,这是比较直观的方法。
然而事实上现在却卡在这里。或者换个思路,,有什么办法让别人(没有安装python环境)使用打包后的exe程序的时候看到控制台里面的信息。。

解决方案

一般的处理方法是在 for 中增加一点延时,再发消息让界面刷新。

解决方案二:

这应该是python GIL的原因,被锁住了,所以要等事件结束,才能刷新。
可以在你的代码中添加time.sleep(1),让出锁给界面刷新。

解决方案三:

晕,原来是这么简单的问题,,难怪没人回答了,,Text组件用insert添加内容之后,再用update方法就可以即时把内容刷新刷新出来了

时间: 2024-08-04 03:44:24

gui-Python-Tkinter请问有什么办法可以在事件处理过程中,即时刷新Text的信息?的相关文章

在苹果手机中不支持/^\+?[1-9][0-9]*$/正则,请问有什么办法吗?

问题描述 在苹果手机中不支持/^+?[1-9][0-9]*$/正则,请问有什么办法吗? 在苹果手机中不支持 /^+?[1-9][0-9]*$/正则,请问有什么办法吗? //限制只能输入1-9纯数字 function digitOnly ($this) { var n = $($this); var r = /^+?[1-9][0-9]*$/; if (!r.test(n.val())) { n.val(""); } } 解决方案 这是js的写法,不知道你说的"苹果手机&quo

python中文编码问题的解决办法

python使用时,经常出现各种编码的问题.这里汇总一下常用的解决办法. 查看python的默认编码 1 import sys 2 print sys.getdefaultencoding()   更改python默认编码 1 import sys 2 reload(sys)   #必须要reload 3 sys.setdefaultencoding('utf-8') 原文件编码声明 1 #放在原文件第一行 2 #coding=utf-8 UnicodeDecodeError解决办法 通常情况使

Python Tkinter简单布局实例教程_python

本文实例展示了Python Tkinter实现简单布局的方法,示例中备有较为详尽的注释,便于读者理解.分享给大家供大家参考之用.具体如下: # -*- coding: utf-8 -*- from Tkinter import * root = Tk() # 80x80代表了初始化时主窗口的大小,0,0代表了初始化时窗口所在的位置 root.geometry('80x80+10+10') # 填充方向 ''' Label(root, text = 'l1', bg = 'red').pack(f

Python Tkinter基础控件用法_python

本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用.具体方法如下: # -*- coding: utf-8 -*- from Tkinter import * def btn_click(): b2['text'] = 'clicked' evalue = e.get() print 'btn Click and Entry value is %s' % evalue def btn_click_bind(event): print 'enter b2' def

servlet的文件下载,请问服务器端有办法知道客户端是否关闭了下载窗口吗?

问题描述 客户端网页调用servlet执行文件下载(response输出流),如果下载过程中:1)用户关闭了下载窗口2)用户关闭了当前标签页(浏览器tab)3)用户关闭了浏览器窗口请问服务器端有没有办法知道这些事件呢?恳请高人指点! 解决方案 解决方案二:不能知道,不过你如果用的servlet3+tomcat7应该是可以知道

使用Python正则表达式RE从CSDN博客源代码中匹配出博客信息

前面我们说到了如何在Python正则表达式z中匹配中文,说到了另一种方法,这就是如何巧妙的使用Python正则表达式匹配模式的问题了 Python匹配模式 re.compile(strPattern[, flag]): 这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象. 第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M.另外,你也可以在regex字符串中指定模式,比如re.compile('patter

爬-请问如何抓下去抓取如下链接中的数据?搞了几天了,没有头绪啊,坐等大神帮忙。。。。

问题描述 请问如何抓下去抓取如下链接中的数据?搞了几天了,没有头绪啊,坐等大神帮忙.... 各位大神好,我想抓取这个网站上http://xxfb.hydroinfo.gov.cn/ssIndex.html,大江大河的水文数据,,好像是用post方法才能返回表里的数据,但是小白实在是不会用,请各路大神帮忙看看,如何获取这个表中的数据,谢谢啦 解决方案 可以用浏览器控制台抓一下请求,post的各种参数需要你能够搞清,这样就可以构造对应的参数,一个个发送post获取返回数据,然后再解析结果. 解决方案

python判断一个集合是否包含了另外一个集合中所有项的方法

  本文实例讲述了python判断一个集合是否包含了另外一个集合中所有项的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 >>> L1 = [1, 2, 3, 3] >>> L2 = [1, 2, 3, 4] >>> set(L1).difference(L2) set([ ]) >>> set(L2).difference(L1) set([4]) 希望本文所述对大家的Python程序设计有所帮助.

struts2改springmvc过程中问题及解决办法记录

我们目前的系统中使用了struts2框架,该版本是2.3.32,但近期Apache struts发布了一项struts的安全漏洞说明,具体如下: Apache Struts2 远程代码执行漏洞(S2-048) 发布日期:2017年7月7日 CVE ID:CVE-2017-9791 受影响的版本: Apache Struts Version: 2.3.x 不受影响的版本: Apache Struts Version:2.5.10.1 综述: 2017年7月7日,Apache Struts发布最新的