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 相关文章推荐
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
python实现一个简单的ping工具方法
Jan 31 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
实例详解Python装饰器与闭包
Jul 29 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
python实现udp聊天窗口
Mar 31 Python
Python 绘制可视化折线图
Jul 22 Python
Django限制API访问频率常用方法解析
Oct 12 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 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 字符串函数收集
2010/03/29 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP的全局错误处理详解
2016/04/25 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
jquery cookie插件代码类
2009/05/26 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
js 文件引入实现代码
2010/04/23 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
Python 处理文件的几种方式
2019/08/23 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Python是什么 Python的用处
2020/05/26 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
SQL面试题
2013/04/30 面试题
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
生活小常识广播稿
2014/09/16 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
Redis基本数据类型String常用操作命令
2022/06/01 Redis