版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
4.練習(xí):運行工具的交互優(yōu)①在課程代碼基礎(chǔ)上增加一個open按鈕,能彈出系統(tǒng)彈窗選擇任意路徑的文件,然后將文件移動到這個項目代碼所在的GUI文件列表中,并且在程序界面的listbox中顯示了這個文件。 /done.pngfromrunpyimportrun_pathfromtkinterimport*#frommultiprocessingimportProcessimportmultiprocessingimport#app -->id-->#|script|-->func1-->fun2-->func3#\App\-->disy()&{ifdo()}-->update()&{ifdefmake_app():app=Tk()returnappdeflistb=app.children['listb']fordinos.listdir():deflistb=app.children['listb']s_path=#注意:linux/mac系統(tǒng)下可以使用中的lambda表達(dá)式,windows系統(tǒng)的用戶,需要按此方法調(diào)用Process模塊。#p=multiprocessing.Process(name='print',target=run_path,#其中,argstargetwindowstarget不建議使用lambda表達(dá)式,很容易產(chǎn)生錯誤。defforpinmultiprocessing.active_children():=='print':deflistb=app.children['listb']s_path=#注意,在windowslinux/macififname=='main':app=make_app()路徑下?1tkinter.filedialog模塊中的askopenfilenames2.參考【】第一階段中所學(xué)到的shutil模塊,其中的move函數(shù)提供了移3MultiProcessing庫中Processis_alive()方法,來檢查一個進(jìn)程是否已經(jīng)執(zhí)行完畢。并且利用兩個list來記錄,一個list叫running,當(dāng)啟動一個進(jìn)程的時候,將它放入running中;另一個list叫have_done,每隔一段時間檢查running中的每個進(jìn)程,如果isnotalive,則認(rèn)為該進(jìn)程已經(jīng)運行完畢,將其放入have_done中。#coding:utf-fromrunpyimportrun_pathfromtkinterimport*fromtkinter.filedialogimport*importmultiprocessingimportshutilimportrunning=have_done=#創(chuàng)建GUIdefmake_app():app=Listbox(app,name='listb').pack(fill=BOTH,expand=True)Button(app,text='open',command=openfile).pack()Button(app,text='run',command=run_script).pack()Button(app,text='stop',command=stop_script).pack()return#填充listbox,并監(jiān)測正在運行的程序是否已經(jīng)運行完畢defui_make_list():#獲取listboxlistbapp.children['listb']#清空listbox中的內(nèi)容fordinlistb.insert(END,d)ifdnotinhave_doneelselistb.insert(END, deff_names=askopenfilenames()forfinf_names:shutil.move(f,'./gui')#運行文def#獲取listb=#獲取listboxs_path=#檢查需要run的是否已經(jīng)在運==print("Thisscriptisalreadyrunning.")#注意此處targetargs。argstarget#linux/mac系統(tǒng)下可以使用中的lambda表達(dá)式,windows系統(tǒng)下需要按此方法使用,該方法是更標(biāo)準(zhǔn)的法。p=multiprocessing.Process(name=s_path,target=run_path,args=('./gui/'+s_path,))#停止運deflistb=app.children['listb']s_path=forpinmultiprocessing.active_children():==s_path:print("Thisscriptisnot#監(jiān)測程序狀態(tài)def#利用MultiProcessingProcessis_aliveforrinifnotr.is_alive()notinhave_done:listb=app.children['listb']s_path=listb.get(ACTIVE)app.after(1000,watcher)#注意
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度大連農(nóng)產(chǎn)品冷庫建設(shè)項目申舟制冷技術(shù)支持合同4篇
- 二零二五年度鋁單板加工產(chǎn)業(yè)扶貧合作合同4篇
- 2025年度汽車維修代理合同補充協(xié)議4篇
- 2025年度家具設(shè)計版權(quán)轉(zhuǎn)讓合同4篇
- 2025年度耐火材料行業(yè)專利申請合同
- 二零二五年度酒店管理專員正式勞動合同3篇
- 二零二五版辦公樓租賃合同(含物業(yè)管理)2篇
- 二零二五年度園林綠化養(yǎng)護(hù)合作協(xié)議書4篇
- 二零二五年度船舶股權(quán)轉(zhuǎn)讓與船舶交易代理服務(wù)協(xié)議4篇
- 2025年度磷礦石運輸合同運輸信息共享協(xié)議4篇
- 國潮風(fēng)中國風(fēng)2025蛇年大吉蛇年模板
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測定
- IEC 62368-1標(biāo)準(zhǔn)解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- 2024年中考語文名句名篇默寫分類匯編(解析版全國)
- 新煤礦防治水細(xì)則解讀
- 故障診斷技術(shù)的國內(nèi)外發(fā)展現(xiàn)狀
- 醫(yī)院領(lǐng)導(dǎo)班子集體議事決策制度
- 解讀2024年《學(xué)紀(jì)、知紀(jì)、明紀(jì)、守紀(jì)》全文課件
- 農(nóng)機維修市場前景分析
- 大學(xué)生《思想道德與法治》考試復(fù)習(xí)題及答案
評論
0/150
提交評論