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 相关文章推荐
在Django的视图中使用form对象的方法
Jul 18 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
使用tensorflow实现AlexNet
Nov 20 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
python 接收处理外带的参数方法
Dec 03 Python
python集成开发环境配置(pycharm)
Feb 14 Python
python2 对excel表格操作完整示例
Feb 23 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
详解pandas映射与数据转换
Jan 22 Python
python中封包建立过程实例
Feb 18 Python
详解Python类和对象内容
Jun 22 Python
Python加密技术之RSA加密解密的实现
Apr 08 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
js实现移动端轮播图
2020/12/21 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
Python中条件判断语句的简单使用方法
2015/08/21 Python
Django入门使用示例
2017/12/12 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
2014年房产经纪人工作总结
2014/12/08 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
银行服务理念口号
2015/12/25 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL