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调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
使用Python中的线程进行网络编程的入门教程
Apr 15 Python
python requests 测试代理ip是否生效
Jul 25 Python
Scrapy框架使用的基本知识
Oct 21 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
Python一行代码实现快速排序的方法
Apr 30 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python读取yaml文件的详细教程
Jul 21 Python
利用python批量爬取百度任意类别的图片的实现方法
Oct 07 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_SELF的安全问题
2009/09/05 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
提交表单时执行func方法实现代码
2013/03/17 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
python变量不能以数字打头详解
2016/07/06 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python 队列详解及实例代码
2016/10/18 Python
Python读取word文本操作详解
2018/01/22 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
分公司经理岗位职责
2013/11/11 职场文书
考试违纪检讨书
2014/02/02 职场文书
高中生职业规划范文
2014/03/09 职场文书
企业授权委托书范本
2014/09/22 职场文书
党建工作整改措施
2014/10/28 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP