用Tkinter打造GUI开发工具(43)Tkinter接管print输出语句

117 篇文章 124 订阅
115 篇文章 108 订阅

用Tkinter打造GUI开发工具(43)Tkinter接管print输出语句
在前面博客介绍了用Tkinter做Python编辑器,我们看到可以运行Python代码,问题是,代码输出到哪里了?如果没有在Python编辑器中,我们无法看到输出结果。
因此我们需要在程序中获取print语句输出信息。
小白量化框架在HP_tk模块已经提供了现成的功能,用户只需要使用就可以了。
下面直接给出演示代码,其中有详细注释。

#小白量化用户Python代码编辑器,输出演示
#独狼荷蒲qq:2886002
#通通小白python量化群:524949939
#微信公众号:独狼股票分析
import  HP_tk  as  htk   #导入htk

#创建输入输出控制权对象myconsole
myconsole=htk.console2()

#获取系统输入input/输出print权
#接管print()函数
myconsole.SwitchOut2(sw=True)
#第一次print
print('1.我想输出信息!')

#获取print语句输出信息
s=myconsole.text
#如果需要清空text缓存可以用clear()方法
#myconsole.clear()

#释放print权利给Python系统,同时返回text输出信息
s2=myconsole.SwitchOut2(sw=False)

#清除print语句输出信息缓存
myconsole.clear()


#第二次print
print('2.刚才输出的什么信息? s=',s)
print('3.刚才输出的什么信息? s2=',s2)

Spyder中程序输入结果如下:

runfile('D:/xb2/小白输出演示2.py', wdir='D:/xb2')
Reloaded modules: HP_tk
2.刚才输出的什么信息? s= 1.我想输出信息!

3.刚才输出的什么信息? s2= 1.我想输出信息!

我们可以在上面程序中明显看到,第一次print输出“print(‘1.我想输出信息!’)”被程序接管了。
当程序释放print接管权后,才允许print语句输出信息。

我们下面给出一个用print语句输出乘法口诀表到Tkinter的Text控件中的例子。

#小白量化用户Python代码编辑器,输出演示
#独狼荷蒲qq:2886002
#通通小白python量化群:524949939
#微信公众号:独狼股票分析
import  tkinter  as  tk   #导入Tkinter
import  HP_tk  as  htk   #导入htk

#创建Tkinterz主窗口
root=tk.Tk()
root.title('Tkinter的print输出演示')
root.geometry('{}x{}+{}+{}'.format(800,600,100,100))

#创建Text文本编辑控件
txt=tk.Text()
txt.pack(fill=tk.BOTH, expand=tk.YES) #铺满Tkinter主窗口


#创建输入输出控制权对象myconsole
myconsole=htk.console2()

#获取系统输入input/输出print权
#接管print()函数
myconsole.SwitchOut2(sw=True)

#输出乘法口诀表
print('\n'.join([' '.join(['%s*%s=%-2s'%(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
#上面的print语句没有在控制台上输出.

#释放print权利给Python系统,同时返回text输出信息
s2=myconsole.SwitchOut2(sw=False)

#清除print语句输出信息缓存
myconsole.clear()

#将截获的print输出信息,输入到Text控件中.
txt.insert(tk.END, s2)

root.mainloop()

程序运行结果如下,Spyder控制台上没有输出信息。

runfile('D:/xb2/小白输出演示3.py', wdir='D:/xb2')
Reloaded modules: HP_tk

运行的图形如下:

在这里插入图片描述
通过上面介绍,我们读者能够利用Tkiter自己设计一个简单的Python代码编辑器。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷蒲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值