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(一)Python环境安装
Aug 20 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
Django密码系统实现过程详解
Jul 19 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
python语言的优势是什么
Jun 17 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
python 如何在list中找Topk的数值和索引
May 20 Python
详解Python描述符的工作原理
Jun 11 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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实现aes加密类分享
2014/02/16 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
javascript中的this作用域详解
2019/07/15 Javascript
python中的多线程实例教程
2014/08/27 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
基于python log取对数详解
2018/06/08 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
医学院护理专业应届生求职信
2013/11/12 职场文书
小学生美德少年事迹
2014/02/02 职场文书
优秀医生事迹材料
2014/02/12 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
审计班子对照检查材料
2014/08/27 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
门面房租房协议书
2014/12/01 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
python实现简单的名片管理系统
2021/04/26 Python