python TK库简单应用(实时显示子进程输出)


Posted in Python onOctober 29, 2019

本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:

#!/usr/bin/python3.5
# -*- coding: UTF-8 -*-
 
import tkinter     # 导入 Tkinter 库
import tkinter.messagebox       # 导入消息框库
import os   #导入OS库
import subprocess
 
def show_something():
 tkinter.messagebox.showinfo( "Python", "Hello everyone")
 
def show_while():
 if button3['text'] == 'WHILE_run':
 button3['text'] = 'WHILE_close'
 else:
 button3['text'] = 'WHILE_run'
 data = subprocess.Popen('./a.out',stdout = subprocess.PIPE,stdin=subprocess.PIPE,shell=True)
 while True: 
    '''
    与子进程通信,给它输入
    data.stdin.write(("abcdf\n").encode())
 data.stdin.flush()
    '''
 t1.config(state='normal')#设置为可编辑
 #t1.delete('1.0','end') #清空文本框
 t1.insert('end',data.stdout.readline())
 t1.see('end')#设置显示最末尾的数据
 t1.update()
 t1.config(state='disabled')#设置为无法编辑
 
def show_ls():
 t2.config(state='normal')#设置为可编辑
 t2.delete('1.0','end') #清空文本框
 t2.insert('end',os.popen('ls').read())
 t2.config(state='disabled')#设置为无法编辑
 
#---创建窗口对象---
root_window = tkinter.Tk()
root_window.title('TEST BY FC')
root_window.geometry('500x500')
 
#---创建容器---
main_frame = tkinter.Frame(root_window)
main_frame.pack()
 
#---创建列表---
li   = ['C','python','php','html','SQL','java']
#---创建两个列表组件---
listb = tkinter.Listbox(root_window)     
#---给小部件插入数据---
for item in li:        
 listb.insert(0,item)
listb.pack()
 
#---创建子容器,在子容器上创建Label---
frm1 = tkinter.Frame(main_frame)
frm1.pack()
tkinter.Label(frm1, text='hello', bg='green', width=10, height=2).pack(side='left')
frm2 = tkinter.Frame(main_frame)
frm2.pack()
tkinter.Label(frm1,text=' world', bg='yellow', width=10, height=2).pack(side='right')
 
#创建按钮
button_frm = tkinter.Frame(root_window)
button_frm.pack()
button1 = tkinter.Button(button_frm, text = "确定", bg='red', fg='white', width=10, height=2, command = show_something)
button1.pack()
button2 = tkinter.Button(button_frm, text = "LS", bg='blue', fg='white', width=10, height=2, command = show_ls)
button2.pack()
button3 = tkinter.Button(button_frm, text = "WHILE_run", bg='green', fg='white', width=10, height=2, command = show_while)
button3.pack()
 
#创建滚动条
s1=tkinter.Scrollbar()
s1.pack(side='right',fill='y') # side是滚动条放置的位置,上下左右。fill是将滚动条沿着y轴填充
 
#创建文本显示框
t1 = tkinter.Text(bg='lightgreen',width=30, height=10,state='disabled',yscrollcommand=s1.set)#设置为无法编辑
t1.pack()
s1.config(command=t1.yview)
t2 = tkinter.Text(bg='lightblue',width=10, height=2,state='disabled')#设置为无法编辑
t2.pack()
 
 
#t2.config(yscrollcommand=s1.set)
 
#---进入消息循环---
root_window.mainloop()

利用TK库做了一个简单的界面,很多细节没有处理,只供学习使用

其中.a.out是一个循环输出的程序,printf输出需要加fflush(stdout)清空缓冲区才可以,cout会自动清空

效果如下

python TK库简单应用(实时显示子进程输出)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
详解python3中tkinter知识点
Jun 21 Python
Python 实现try重新执行
Dec 21 Python
Python类反射机制使用实例解析
Dec 30 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
Python中如何引入第三方模块
May 27 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 Python
Python项目跨域问题解决方案
Jun 22 Python
python爬虫要用到的库总结
Jul 28 Python
Django crontab定时任务模块操作方法解析
Sep 10 Python
python 绘制场景热力图的示例
Sep 23 Python
pygame实现贪吃蛇游戏(上)
Oct 29 #Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 #Python
pygame实现打字游戏
Feb 19 #Python
Python 实现自动导入缺失的库
Oct 29 #Python
python实现的读取网页并分词功能示例
Oct 29 #Python
python实现LRU热点缓存及原理
Oct 29 #Python
Python 中的 import 机制之实现远程导入模块
Oct 29 #Python
You might like
php实现jQuery扩展函数
2009/10/30 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Python 变量类型详解
2018/10/10 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
Python中函数参数匹配模型详解
2019/06/09 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
自主招生自荐信
2013/12/08 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
尼克胡哲观后感
2015/06/08 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
python 中的jieba分词库
2021/11/23 Python
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript