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通过加号运算符操作列表的方法
Jul 28 Python
python实现发送和获取手机短信验证码
Jan 15 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
Python处理文本换行符实例代码
Feb 03 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
python的常用模块之collections模块详解
Dec 06 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
查看端口并杀进程python脚本代码
Dec 17 Python
Python selenium页面加载慢超时的解决方案
Mar 18 Python
如何使用python自带IDLE的几种方法
Oct 10 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 Python
关于Python使用turtle库画任意图的问题
Apr 01 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
拼音码表的生成
2006/10/09 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
PHP微信API接口类
2016/08/22 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
JS代码放在head和body中的区别分析
2011/12/01 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
编写Python的web框架中的Model的教程
2015/04/29 Python
python实现中文输出的两种方法
2015/05/09 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
校企合作协议书
2014/04/16 职场文书
挂职学习心得体会
2014/09/09 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
结婚主持人致辞
2015/07/28 职场文书
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers