大佬教程收集整理的这篇文章主要介绍了如何实时将STDOUT从导入的模块重定向到python中的Tkinter Text Widget?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
sleepBtn.update_IDletasks()
在每个time.sleep(2)
命令之前调用。否则,在睡眠过程结束之前不会更新视图。
我正在尝试在Windows 7上使用Python 2.7.2将stdout实时重定向到Tkinter
Text小部件中。在下面的代码中,我打算让print语句每2秒出现在Text小部件中。相反,所有三行
Received sleep-command
Going to sleep for 2 s
Just woke up
一旦对sleep()和mod1.main()都进行了评估,就会同时出现。
令人惊讶的是(至少对我而言),当我不重定向标准输出时,问题就消失了。也就是说,如果我注释掉
sys.stdout = StdoutRedirector(outputPanel)
IDLE实时显示打印报表。有人可以向我解释一下并提出解决方法吗?提前致谢!
这是我的示例代码:
@H_631_2@mod1.pyimport time
import sys
def main():
print('Going to sleep for 2 s')
time.sleep(2)
print('Just woke up')
text_GUI.py
from Tkinter import *
import sys
import time
import mod1
old_stdout = sys.stdout
class StdoutRedirector(object):
def __init__(self,text_area):
self.text_area = text_area
def write(self,str):
self.text_area.insert(END,str)
self.text_area.see(END)
def sleep():
print('Received sleep-command')
time.sleep(2)
mod1.main()
root = Tk()
# Textbox
outputPanel = Text(root,wrap='word',height = 11,width=50)
outputPanel.grid(@R_674_8620@n=0,row=0,@R_674_8620@nspan = 2,sticky='NSWE',padx=5,pady=5)
sys.stdout = StdoutRedirector(outputPanel)
# Sleep button
sleepBtn = Button(root,text='Sleep',command=sleep)
sleepBtn.grid(row=1,@R_674_8620@n=1,sticky='E',pady=5)
root.mainloop()
sys.stdout = old_stdout
以上是大佬教程为你收集整理的如何实时将STDOUT从导入的模块重定向到python中的Tkinter Text Widget?全部内容,希望文章能够帮你解决如何实时将STDOUT从导入的模块重定向到python中的Tkinter Text Widget?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。