日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

瀏覽:16日期:2022-06-17 09:22:39

PySimpleGUI 使用起來感覺比tkinter要方便,當(dāng)然我也沒怎么用過這兩者。只是學(xué)習(xí)模擬一下任務(wù)進(jìn)度完成情況。

安裝

pip install PySimpleGUI

一、簡(jiǎn)單進(jìn)度條使用

PySimpleGUI有一個(gè)一條命令即可展示進(jìn)度條的控件。one_line_progress_meter

import timeimport PySimpleGUI as sgif __name__ == ’__main__’: sg.one_line_progress_meter(’進(jìn)度條標(biāo)題’, 10, 100, ’key1’, ’內(nèi)容’) # sg.one_line_progress_meter() time.sleep(10)

python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

基本參數(shù)前面的參數(shù)分別代表進(jìn)度條標(biāo)題,進(jìn)度條當(dāng)前進(jìn)度,進(jìn)度條最大進(jìn)度,進(jìn)度條的 key, (key相同代表是同一個(gè)進(jìn)度條)進(jìn)度條傳入?yún)?shù)(可以是多個(gè)非關(guān)鍵字參數(shù))。

sg.one_line_progress_meter(’進(jìn)度條標(biāo)題’, 10, 100, ’key1’, ’內(nèi)容1’)

其它常用參數(shù)orientation由于參數(shù)*args 的存在,調(diào)用時(shí)如果希望傳入自定義參數(shù),那么前面的基本參數(shù)需要使用非關(guān)鍵字形式傳入。當(dāng)然也可以不傳入自定義參數(shù)。orientation 表示 進(jìn)度條是橫向的或是縱向的。h橫向 v縱向(默認(rèn))

sg.one_line_progress_meter(title=’進(jìn)度條標(biāo)題2’, current_value=20, max_value=100, key=’key2’, orientation=’h’)

python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

模擬進(jìn)度條一步步填滿

import timeimport PySimpleGUI as sgif __name__ == ’__main__’: for i in range(1000):time.sleep(0.02) # 模擬0.02s 完成了千分之一的任務(wù)sg.one_line_progress_meter( ’進(jìn)度條’, i+1, 1000, ’key’, ’測(cè)試使用進(jìn)度條’, orientation=’h’)

python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

此處休眠時(shí)間可以當(dāng)做完成任務(wù)的時(shí)間。沒完成一點(diǎn)任務(wù)進(jìn)度條就會(huì)增加。

但實(shí)際上真正運(yùn)行時(shí)有很多耗時(shí)任務(wù)執(zhí)行時(shí)會(huì)阻塞進(jìn)度條。使進(jìn)度條陷入未響應(yīng)狀態(tài)(如第一個(gè)圖片)。所以一般會(huì)把耗時(shí)任務(wù)使用多線程執(zhí)行,執(zhí)行完成后想辦法通知進(jìn)度條更新狀態(tài)。注(PySimpleGUI組件需要運(yùn)行在主線程,參見源文檔說明)

one_line_progress_meter雖然方便,但樣式無法控制,其上也有很多不關(guān)心的顯示無法去除。。。

附。PySimpleGUI的彈窗使用。

sg.popup(’注意!’)sg.popup_ok(’默認(rèn)彈窗’)sg.popup_yes_no(’帶Yes和No按鈕的彈窗’)sg.popup_cancel(’帶cancel按鈕的彈窗’)sg.popup_ok_cancel(’帶OK和cancel按鈕的彈窗’)sg.popup_error(’帶紅色error按鈕的彈窗’)sg.popup_auto_close(’幾秒后自動(dòng)關(guān)閉的彈窗’)sg.popup_auto_close(’10秒后自動(dòng)關(guān)閉的彈窗’, auto_close_duration=10)二、進(jìn)度條控件使用

普通方法展示進(jìn)度條控件。需要大概知曉布局和窗口的關(guān)系。

import PySimpleGUI as sg# 布局,是一個(gè)用戶定義的二維列表。# 第一維德元素分居不同的行上,第二維度上的元素們居于同一行,不同列上# 此處定義的列表 由三部分組成 Text文件 ProgressBar進(jìn)度條 Cancel取消按鈕構(gòu)成# Text Progress等有各自的參數(shù)設(shè)置,如size等。此處不再贅述layout = [[sg.Text(’任務(wù)完成進(jìn)度’)], [sg.ProgressBar(1000, orientation=’h’, size=(20, 20), key=’progressbar’)], [sg.Cancel()]]# window只需將自定義的布局加載出來即可 第一個(gè)參數(shù)是窗口標(biāo)題。window = sg.Window(’機(jī)器人執(zhí)行進(jìn)度’, layout)# 根據(jù)key值獲取到進(jìn)度條progress_bar = window[’progressbar’]# window的read函數(shù)分為同步和異步,# 不帶timeout參數(shù)即為同步函數(shù) 一直等到手動(dòng)點(diǎn)擊按鈕才會(huì)返回。# 帶timeout參數(shù)不為None的為異步函數(shù),timeout時(shí)間內(nèi)無時(shí)間或者點(diǎn)擊了按鈕都會(huì)產(chǎn)生結(jié)果。# 異步方式不會(huì)阻塞后面的程序運(yùn)行。for i in range(1000):# 循環(huán) event, values = window.read(timeout=10) if event == ’Cancel’ or event is None:break progress_bar.UpdateBar(i + 1)window.close()

python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

此處依然是使用的for循環(huán)將進(jìn)度條填滿。下面使用線程模擬任務(wù)進(jìn)度完成。

三、模擬任務(wù)完成度 進(jìn)度條

使用線程模擬任務(wù)進(jìn)度完成。當(dāng)然,沒有現(xiàn)實(shí)的任務(wù),所以還是使用for循環(huán)加休眠組成。。。當(dāng)然,與原來還是有區(qū)別的。因?yàn)槿蝿?wù)在線程內(nèi)完成,完成后需要通知主線程進(jìn)度條更新。

import randomimport timefrom queue import Emptyimport PySimpleGUI as sgimport threadingimport queue# 布局,是一個(gè)用戶定義的二維列表。# 第一維德元素分居不同的行上,第二維度上的元素們居于同一行,不同列上# 此處定義的列表 由三部分組成 Text文件 ProgressBar進(jìn)度條 Cancel取消按鈕構(gòu)成layout = [[sg.Text(’任務(wù)完成進(jìn)度’)], [sg.ProgressBar(100, orientation=’h’, size=(50, 20), key=’progressbar’)], [sg.Cancel()]]# window只需將自定義的布局加載出來即可 第一個(gè)參數(shù)是窗口標(biāo)題。window = sg.Window(’機(jī)器人執(zhí)行進(jìn)度’, layout)# 根據(jù)key值獲取到進(jìn)度條progress_bar = window[’progressbar’]# 隊(duì)列 后進(jìn)先出q = queue.Queue()def task_1(): global q for i in range(100):# 因?yàn)橐笥趙indow.read設(shè)置超時(shí)時(shí)間100ms 保證讀取時(shí)隊(duì)列最多只有一個(gè)元素time.sleep(random.random() + 0.1)q.put(i+1) # 向隊(duì)列中放入當(dāng)前任務(wù)完成度# 創(chuàng)建多線程 設(shè)置以保護(hù)模式啟動(dòng),即主線程運(yùn)行結(jié)束,子線程也停止運(yùn)行worker_task = threading.Thread(target=task_1)worker_task.setDaemon(True)worker_task.start()while True: # 死循環(huán)不斷讀取隊(duì)列中數(shù)據(jù),直到讀到100 # event 就是返回的事件 # 如點(diǎn)擊Cancel后 event=Cancel event, values = window.read(timeout=100) if event == ’Cancel’ or event is None:# 點(diǎn)擊取消按鈕或者返回事件為 Nonebreak # 10ms 無操作算超時(shí)event會(huì)等于 __TIMEOUT__ # 其實(shí)不用判斷 try:# get是等待讀取,直到讀取到數(shù)據(jù)# get_nowait 不等待,讀取不到數(shù)據(jù) 就報(bào)異常progress_value = q.get_nowait() except Empty: # 沒有讀取到數(shù)據(jù)的話,繼續(xù)window.readcontinue else: # 讀取到數(shù)據(jù)progress_bar.UpdateBar(progress_value)if progress_value == 100: # 進(jìn)度滿跳出循環(huán) breakwindow.close()

python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

以上就是python使用PySimpleGUI設(shè)置進(jìn)度條的詳細(xì)內(nèi)容,更多關(guān)于python PySimpleGUI進(jìn)度條的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日日夜夜免费精品| 午夜宅男久久久| 国产精品综合| 丝袜美腿亚洲一区| 日韩视频在线一区二区三区 | 精品美女久久| 日韩高清电影一区| 97久久超碰| 欧美日韩中文| 国产精品扒开腿做爽爽爽软件| 91精品国产一区二区在线观看| 欧美另类中文字幕| 老色鬼精品视频在线观看播放| 国产激情综合| 福利一区二区三区视频在线观看| 捆绑调教日本一区二区三区| 性欧美xxxx免费岛国不卡电影| 精品在线99| 日韩中文欧美在线| 欧美a在线观看| 国产va免费精品观看精品视频| 美女久久精品| 欧美aa在线观看| 午夜精品影院| 亚洲三级毛片| 久久免费精品| 丝袜av一区| 中文字幕乱码亚洲无线精品一区| 久久国际精品| 日韩欧美一区二区三区免费观看| 亚洲在线成人| 国产欧美亚洲精品a| 久久uomeier| 亚洲一区欧美二区| 欧美一区久久| 日韩一区欧美| 红桃视频欧美| 国产乱码精品一区二区三区四区 | yellow在线观看网址| 欧美日韩国产综合网| 综合国产精品| 里番精品3d一二三区| 999久久久免费精品国产| 日韩一区精品字幕| 欧美色综合网| 毛片在线网站| 最近国产精品视频| 精品国产18久久久久久二百| 亚洲一区中文| 久久亚洲精精品中文字幕| 国产综合激情| 国产午夜久久av| 欧美日韩中文一区二区| 日本不卡一区二区三区| 亚洲综合电影| 日韩区一区二| 91精品婷婷色在线观看| 日韩激情视频网站| 日韩欧美网址| 午夜性色一区二区三区免费视频| 国产日韩一区二区三区在线| 欧美精品日日操| 国产亚洲电影| 国产精品一区二区三区av麻 | 久久精品国产99久久| 国产精一区二区| 91成人福利| 精品国产a一区二区三区v免费| 国产精品嫩模av在线| 野花国产精品入口| 亚洲激情久久| 蜜桃国内精品久久久久软件9| 久久久久观看| 欧美另类专区| 亚洲精品福利| 丝袜美腿一区二区三区| 成人免费一区| 色欧美自拍视频| 国产伦一区二区三区| 亚洲一级少妇| 日韩三级精品| 欧美+日本+国产+在线a∨观看| 91大神在线观看线路一区| 99久久久久久中文字幕一区| 欧美中文一区| 国产一级久久| 在线亚洲人成| 国产精品theporn| av资源亚洲| 久久精品不卡| 国产精品a久久久久| 日精品一区二区三区| 麻豆国产精品777777在线| 成人在线超碰| 日韩不卡一区二区三区| 免费视频一区二区三区在线观看 | 亚欧洲精品视频在线观看| 精品中国亚洲| 日本三级亚洲精品| 视频一区在线视频| 色婷婷狠狠五月综合天色拍| 国产欧美日韩在线观看视频| 亚洲三级视频| 亚洲精品一级二级三级| 石原莉奈在线亚洲二区| 国产精品115| 国产精品一区二区精品视频观看| 精品一区二区三区视频在线播放| 亚洲调教视频在线观看| 欧美亚洲国产一区| 久久av一区| 国产精品伊人| 色在线视频观看| 亚洲精品成人| 国产欧美日韩精品一区二区三区| 国产成人久久精品麻豆二区 | 国产99精品一区| 日本亚洲欧美天堂免费| 91成人在线| 久久精品国产一区二区| 精品三级国产| 婷婷综合成人| 日韩精品一级中文字幕精品视频免费观看 | sm捆绑调教国产免费网站在线观看| 日韩伦理在线一区| 精品精品99| 欧美偷窥清纯综合图区| 国产视频欧美| 在线亚洲成人| 久久人人99| 99久久久久| 亚洲a一区二区三区| 日韩一区二区三区在线免费观看| 中文字幕高清在线播放| 久久精品理论片| 国产精品欧美在线观看| 国产精品qvod| 国产精品v日韩精品v欧美精品网站| 国产亚洲高清在线观看| 色综合视频一区二区三区日韩 | 国内在线观看一区二区三区| 国产日产一区| 国产精品亲子伦av一区二区三区| 热久久免费视频| 亚洲中字黄色| 中文在线日韩| 国产香蕉精品| 久久精品一区| 中文字幕系列一区| 免费久久精品| 久久国产高清| 日韩欧美精品一区二区综合视频| 欧美一区91| 黄色网一区二区| 99精品一区| 蜜桃一区二区三区在线观看| 久久国产精品色av免费看| 欧美日韩亚洲一区二区三区在线| 美女视频免费精品| 亚洲二区视频| 亚洲区欧美区| 久久99久久久精品欧美| 韩国久久久久久| 国产亚洲激情| 91精品国产自产在线丝袜啪| 精品理论电影在线| 91国语精品自产拍| 91伊人久久| 日韩av有码| 黄色日韩精品| 欧美精品影院| 欧美成人基地| 亚洲免费一区二区| 久久精品97| 久久国产电影| 日韩精品免费视频一区二区三区| 国产66精品| 在线亚洲自拍| 国产精品久久久免费| 国产99精品一区| 国产日韩中文在线中文字幕| 日韩精品中文字幕第1页| 日韩中文字幕一区二区三区| 成人精品动漫一区二区三区| 免费在线亚洲欧美| 欧美日韩a区| 日韩av网站在线观看| 欧美日韩国产一区二区三区不卡| 国产精品高清一区二区| 在线天堂中文资源最新版| 日本成人在线网站| 国产精品观看| 五月天久久久| 国产精品一区二区中文字幕| 99久久视频| 国产午夜一区| 91久久中文| 国产一区二区色噜噜| 蜜桃视频一区二区| 亚洲国产福利|