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实现一个简单的线程池
Apr 07 Python
Python正则表达式匹配HTML页面编码
Apr 08 Python
python搜索指定目录的方法
Apr 29 Python
python之Socket网络编程详解
Sep 29 Python
Python处理Excel文件实例代码
Jun 20 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
Django中的文件的上传的几种方式
Jul 23 Python
python实现简单登陆系统
Oct 18 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
python 协程 gevent原理与用法分析
Nov 22 Python
pycharm Tab键设置成4个空格的操作
Feb 26 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
JS继承定义与使用方法简单示例
2020/02/19 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Django中处理出错页面的方法
2015/07/15 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python操作excel的方法
2018/08/16 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python字符串的拼接方法总结
2019/11/18 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python 爬虫的原理
2020/07/30 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
什么是GWT的Module
2013/01/20 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
大学社团活动总结
2014/04/26 职场文书
校园元旦活动总结
2014/07/09 职场文书
费用申请报告范文
2015/05/15 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
全新239军机修复记
2022/04/05 无线电