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会自动清空

如果需要给子程序传入输入,可以用stdin.write,注意要清空输缓冲:

data.stdin.write(("2\n").encode())
data.stdin.flush()

效果如下

### 回答1: 安装 Python Tk 简单,通常在大多数系统上都已经预装了。如果没有,您可以在命令行中执行以下命令来安装: ``` pip install python-tk ``` 如果使用的是 Anaconda 发行版,则可以使用以下命令安装 Tk : ``` conda install tk ``` 安装后,您可以在 Python 代码中导入 Tkinter 并使用它。 ### 回答2: PythontkinterPython的标准之一,用于创建图形用户界面(GUI)应用程序。tkinterPython中是默认安装的,因此无需额外安装。 要使用tkinter,首先需要确保已经安装了Python。可以在命令行窗口中输入python --version来查看Python的版本信息。 一旦确认Python已经安装,就可以使用tkinter了。在Python脚本中,只需要使用import tkinter语句导入tkinter即可。 import tkinter 此时,就可以使用tkinter提供的各种函数和类来创建GUI应用程序。例如,可以使用Tk()函数创建一个顶级窗口,使用Label()函数创建标签等。 如果发现无法导入tkinter,可能是因为Python的安装中没有包含tkinter模块。在某些情况下,Python的安装可能没有默认集成tkinter,这时需要手动安装tkinter。 对于Windows用户,可以通过重新运行Python的安装程序来安装tkinter。在安装程序的可选组件中,选择“tcl/tk和IDLE”来安装tkinter。 对于Linux用户,可以使用包管理器来安装tkinter。例如,可以在终端中运行以下命令: sudo apt-get install python-tk 对于Mac用户,可以使用Homebrew来安装tkinter。在终端中运行以下命令: brew install python-tk 总之,大多数情况下,使用Python时不需要手动安装tkinter,因为它作为Python的标准已经默认安装了。只需简单地导入tkinter,就可以开始使用它来创建GUI应用程序了。 ### 回答3: 使用Pythontk可以创建图形用户界面(GUI)应用程序。在安装tk之前,需要先确保已经安装了Python解释器。 在Windows操作系统下,可以使用以下步骤来安装tk: 1. 打开一个网页浏览器,进入Python官方网站(https://www.python.org/downloads/)。 2. 在网页上选择适合你操作系统的Python版本,并点击下载。 3. 完成下载后,双击运行下载好的.exe安装程序。 4. 在安装向导中,选择"Customize installation"(自定义安装)。 5. 在安装选项页面中,确保勾选了"tcl/tk and IDLE"选项,并点击"Next"。 6. 接着一路点击"Next",直至安装完成。 在Mac操作系统下,可以使用以下步骤来安装tk: 1. 打开终端应用程序(通过“应用程序”文件夹中的“实用工具”找到)。 2. 输入以下命令来安装Homebrew包管理器: ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 3. 完成Homebrew安装后,再次在终端中输入以下命令来安装tcl-tk: ``` brew install tcl-tk ``` 4. 终端会自动下载和安装tcl-tk。 安装完成后,可以通过以下代码来测试tk是否成功安装: ```python import tkinter as tk # 创建一个简单的窗口 window = tk.Tk() window.title("测试窗口") window.geometry("200x200") # 显示窗口 window.mainloop() ``` 如果没有出现错误,那么tk已经成功安装。你现在可以开始使用tk来创建各种GUI应用程序了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值