python TK庫(kù)簡(jiǎn)單應(yīng)用(實(shí)時(shí)顯示子進(jìn)程輸出)
本文介紹python TK庫(kù)簡(jiǎn)單應(yīng)用(實(shí)時(shí)顯示子進(jìn)程輸出),分享給大家,具體如下:
#!/usr/bin/python3.5
# -*- coding: UTF-8 -*-
import tkinter # 導(dǎo)入 Tkinter 庫(kù)
import tkinter.messagebox # 導(dǎo)入消息框庫(kù)
import os #導(dǎo)入OS庫(kù)
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:
'''
與子進(jìn)程通信,給它輸入
data.stdin.write(("abcdf\n").encode())
data.stdin.flush()
'''
t1.config(state='normal')#設(shè)置為可編輯
#t1.delete('1.0','end') #清空文本框
t1.insert('end',data.stdout.readline())
t1.see('end')#設(shè)置顯示最末尾的數(shù)據(jù)
t1.update()
t1.config(state='disabled')#設(shè)置為無(wú)法編輯
def show_ls():
t2.config(state='normal')#設(shè)置為可編輯
t2.delete('1.0','end') #清空文本框
t2.insert('end',os.popen('ls').read())
t2.config(state='disabled')#設(shè)置為無(wú)法編輯
#---創(chuàng)建窗口對(duì)象---
root_window = tkinter.Tk()
root_window.title('TEST BY FC')
root_window.geometry('500x500')
#---創(chuàng)建容器---
main_frame = tkinter.Frame(root_window)
main_frame.pack()
#---創(chuàng)建列表---
li = ['C','python','php','html','SQL','java']
#---創(chuàng)建兩個(gè)列表組件---
listb = tkinter.Listbox(root_window)
#---給小部件插入數(shù)據(jù)---
for item in li:
listb.insert(0,item)
listb.pack()
#---創(chuàng)建子容器,在子容器上創(chuàng)建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')
#創(chuàng)建按鈕
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()
#創(chuàng)建滾動(dòng)條
s1=tkinter.Scrollbar()
s1.pack(side='right',fill='y') # side是滾動(dòng)條放置的位置,上下左右。fill是將滾動(dòng)條沿著y軸填充
#創(chuàng)建文本顯示框
t1 = tkinter.Text(bg='lightgreen',width=30, height=10,state='disabled',yscrollcommand=s1.set)#設(shè)置為無(wú)法編輯
t1.pack()
s1.config(command=t1.yview)
t2 = tkinter.Text(bg='lightblue',width=10, height=2,state='disabled')#設(shè)置為無(wú)法編輯
t2.pack()
#t2.config(yscrollcommand=s1.set)
#---進(jìn)入消息循環(huán)---
root_window.mainloop()
利用TK庫(kù)做了一個(gè)簡(jiǎn)單的界面,很多細(xì)節(jié)沒(méi)有處理,只供學(xué)習(xí)使用
其中.a.out是一個(gè)循環(huán)輸出的程序,printf輸出需要加fflush(stdout)清空緩沖區(qū)才可以,cout會(huì)自動(dòng)清空
效果如下

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python啟動(dòng)辦公軟件進(jìn)程(word、excel、ppt、以及wps的et、wps、wpp)
- Python子進(jìn)程subpocess原理及用法解析
- python多進(jìn)程 主進(jìn)程和子進(jìn)程間共享和不共享全局變量實(shí)例
- Python進(jìn)程,多進(jìn)程,獲取進(jìn)程id,給子進(jìn)程傳遞參數(shù)操作示例
- 在Python中os.fork()產(chǎn)生子進(jìn)程的例子
- 對(duì)Python subprocess.Popen子進(jìn)程管道阻塞詳解
- python清理子進(jìn)程機(jī)制剖析
- python subprocess 殺掉全部派生的子進(jìn)程方法
- 如何用 Python 子進(jìn)程關(guān)閉 Excel 自動(dòng)化中的彈窗
相關(guān)文章
將數(shù)據(jù)集制作成VOC數(shù)據(jù)集格式的實(shí)例
今天小編就為大家分享一篇將數(shù)據(jù)集制作成VOC數(shù)據(jù)集格式的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實(shí)例
今天小編就為大家分享一篇在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python連接mssql數(shù)據(jù)庫(kù)編碼問(wèn)題解決方法
這篇文章主要介紹了Python連接mssql數(shù)據(jù)庫(kù)編碼問(wèn)題解決方法,本文方法同樣適用mysql、sqllite、mongodb等數(shù)據(jù)庫(kù),需要的朋友可以參考下2015-01-01
Python實(shí)例解析圖像形態(tài)學(xué)運(yùn)算技術(shù)
形態(tài)學(xué)處理方法是基于對(duì)二進(jìn)制圖像進(jìn)行處理的,卷積核決定圖像處理后的效果。本文將為大家詳細(xì)介紹一下OpenCV中的圖像形態(tài)學(xué),感興趣的可以了解一下2022-03-03
利用Python解決構(gòu)造回文字符串問(wèn)題的方法
回文字符串是指正讀和反讀都相同的字符串,例如"aba"或"abba",構(gòu)造回文字符串問(wèn)題通常涉及從給定字符串中刪除某些字符,以形成最長(zhǎng)的回文子序列,或者計(jì)算形成回文所需的最小刪除次數(shù),本文將詳細(xì)介紹如何使用Python和動(dòng)態(tài)規(guī)劃算法來(lái)解決構(gòu)造回文字符串問(wèn)題2025-04-04
聊聊Python中的浮點(diǎn)數(shù)運(yùn)算不準(zhǔn)確問(wèn)題
這篇文章主要介紹了聊聊Python中的浮點(diǎn)數(shù)運(yùn)算不準(zhǔn)確問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python?Poetrya項(xiàng)目依賴管理安裝使用詳解
這篇文章主要為大家介紹了Python?Poetrya項(xiàng)目依賴管理安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法
下面小編就為大家分享一篇Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python+tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)單的秒鐘
這篇文章主要為大家詳細(xì)介紹了Python如何利用tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)單的秒鐘,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以自己動(dòng)手嘗試一下2024-02-02

