校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python使用PySimpleGUI設置進度條及控件使用

python使用PySimpleGUI設置進度條及控件使用

熱門標簽:打電話機器人營銷 騰訊地圖標注沒法顯示 南陽打電話機器人 商家地圖標注海報 聊城語音外呼系統 地圖標注自己和別人標注區別 孝感營銷電話機器人效果怎么樣 海外網吧地圖標注注冊 ai電銷機器人的優勢

PySimpleGUI 使用起來感覺比tkinter要方便,當然我也沒怎么用過這兩者。只是學習模擬一下任務進度完成情況。

安裝

pip install PySimpleGUI

一、簡單進度條使用

PySimpleGUI有一個一條命令即可展示進度條的控件。one_line_progress_meter

import time
import PySimpleGUI as sg


if __name__ == '__main__':
    sg.one_line_progress_meter('進度條標題',
                               10,
                               100,
                               'key1',
                               '內容')
    # sg.one_line_progress_meter()
    time.sleep(10)

基本參數
前面的參數分別代表
進度條標題,
進度條當前進度,
進度條最大進度,
進度條的 key, (key相同代表是同一個進度條)
進度條傳入參數(可以是多個非關鍵字參數)。

sg.one_line_progress_meter('進度條標題',
                           10,
                           100,
                           'key1',
                           '內容1')

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

 sg.one_line_progress_meter(title='進度條標題2',
                               current_value=20,
                               max_value=100,
                               key='key2',
                               orientation='h')

模擬進度條一步步填滿

import time
import PySimpleGUI as sg


if __name__ == '__main__':
    for i in range(1000):
        time.sleep(0.02)    # 模擬0.02s 完成了千分之一的任務
        sg.one_line_progress_meter(
            '進度條',
            i+1,
            1000,
            'key',
            '測試使用進度條',
            orientation='h'
        )

此處休眠時間可以當做完成任務的時間。沒完成一點任務進度條就會增加。

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

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

附。PySimpleGUI的彈窗使用。

sg.popup('注意!')
sg.popup_ok('默認彈窗')
sg.popup_yes_no('帶Yes和No按鈕的彈窗')
sg.popup_cancel('帶cancel按鈕的彈窗')
sg.popup_ok_cancel('帶OK和cancel按鈕的彈窗')
sg.popup_error('帶紅色error按鈕的彈窗')
sg.popup_auto_close('幾秒后自動關閉的彈窗')
sg.popup_auto_close('10秒后自動關閉的彈窗', auto_close_duration=10)

二、進度條控件使用

普通方法展示進度條控件。需要大概知曉布局和窗口的關系。

import PySimpleGUI as sg

# 布局,是一個用戶定義的二維列表。
# 第一維德元素分居不同的行上,第二維度上的元素們居于同一行,不同列上
# 此處定義的列表  由三部分組成 Text文件 ProgressBar進度條 Cancel取消按鈕構成
# Text Progress等有各自的參數設置,如size等。此處不再贅述
layout = [[sg.Text('任務完成進度')],
          [sg.ProgressBar(1000, orientation='h', size=(20, 20), key='progressbar')],
          [sg.Cancel()]]

# window只需將自定義的布局加載出來即可 第一個參數是窗口標題。
window = sg.Window('機器人執行進度', layout)

# 根據key值獲取到進度條
progress_bar = window['progressbar']

# window的read函數分為同步和異步,
# 不帶timeout參數即為同步函數 一直等到手動點擊按鈕才會返回。
# 帶timeout參數不為None的為異步函數,timeout時間內無時間或者點擊了按鈕都會產生結果。
# 異步方式不會阻塞后面的程序運行。
for i in range(1000):	# 循環
    event, values = window.read(timeout=10)
    if event == 'Cancel' or event is None:
        break
    progress_bar.UpdateBar(i + 1)

window.close()

此處依然是使用的for循環將進度條填滿。下面使用線程模擬任務進度完成。

三、模擬任務完成度 進度條

使用線程模擬任務進度完成。當然,沒有現實的任務,所以還是使用for循環加休眠組成。。。當然,與原來還是有區別的。因為任務在線程內完成,完成后需要通知主線程進度條更新。

import random
import time
from queue import Empty

import PySimpleGUI as sg
import threading
import queue

# 布局,是一個用戶定義的二維列表。
# 第一維德元素分居不同的行上,第二維度上的元素們居于同一行,不同列上
# 此處定義的列表  由三部分組成 Text文件 ProgressBar進度條 Cancel取消按鈕構成
layout = [[sg.Text('任務完成進度')],
          [sg.ProgressBar(100, orientation='h', size=(50, 20), key='progressbar')],
          [sg.Cancel()]]

# window只需將自定義的布局加載出來即可 第一個參數是窗口標題。
window = sg.Window('機器人執行進度', layout)

# 根據key值獲取到進度條
progress_bar = window['progressbar']

# 隊列 后進先出
q = queue.Queue()


def task_1():
    global q
    for i in range(100):
        # 因為要大于window.read設置超時時間100ms 保證讀取時隊列最多只有一個元素
        time.sleep(random.random() + 0.1)
        q.put(i+1)    # 向隊列中放入當前任務完成度

# 創建多線程 設置以保護模式啟動,即主線程運行結束,子線程也停止運行
worker_task = threading.Thread(target=task_1)
worker_task.setDaemon(True)
worker_task.start()

while True:     # 死循環不斷讀取隊列中數據,直到讀到100
    # event 就是返回的事件
    # 如點擊Cancel后    event=Cancel
    event, values = window.read(timeout=100)
    if event == 'Cancel' or event is None:
        # 點擊取消按鈕或者返回事件為 None
        break

    # 10ms 無操作算超時event會等于 __TIMEOUT__
    # 其實不用判斷
    try:
        # get是等待讀取,直到讀取到數據
        #  get_nowait 不等待,讀取不到數據 就報異常
        progress_value = q.get_nowait()
    except Empty:   # 沒有讀取到數據的話,繼續window.read
        continue
    else:   # 讀取到數據
        progress_bar.UpdateBar(progress_value)
        if progress_value == 100:   # 進度滿跳出循環
            break

window.close()

以上就是python使用PySimpleGUI設置進度條的詳細內容,更多關于python PySimpleGUI進度條的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 6行Python代碼實現進度條效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI庫)
  • 一個非常簡單好用的Python圖形界面庫(PysimpleGUI)
  • 六種酷炫Python運行進度條效果的實現代碼
  • Python 給下載文件顯示進度條和下載時間的實現
  • Python Multiprocessing多進程 使用tqdm顯示進度條的實現
  • 詳細介紹Python進度條tqdm的使用
  • 在python tkinter中Canvas實現進度條顯示的方法
  • Python小進度條顯示代碼

標簽:楊凌 聊城 牡丹江 南寧 六盤水 撫州 揚州 迪慶

巨人網絡通訊聲明:本文標題《python使用PySimpleGUI設置進度條及控件使用》,本文關鍵詞  python,使用,PySimpleGUI,設置,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python使用PySimpleGUI設置進度條及控件使用》相關的同類信息!
  • 本頁收集關于python使用PySimpleGUI設置進度條及控件使用的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产成人av一区二区三区在线观看| 亚洲精品高清在线| 欧美顶级少妇做爰| 亚洲色图欧洲色图婷婷| 成人国产电影网| 中文字幕av不卡| 色婷婷av一区| 亚洲成人激情av| 欧美日韩精品一区二区三区蜜桃| 最新国产成人在线观看| 日本久久精品电影| 午夜久久电影网| 欧美变态tickling挠脚心| 国产一区在线精品| 国产精品国产三级国产| 欧美日韩情趣电影| 久久99精品久久久久久动态图| 欧美女孩性生活视频| 美洲天堂一区二卡三卡四卡视频 | 亚洲女人的天堂| 在线观看亚洲专区| 激情综合色综合久久| 国产精品激情偷乱一区二区∴| 97se亚洲国产综合自在线| 一区二区三区四区精品在线视频| 99精品视频一区二区三区| 国产欧美视频一区二区| 欧美精品丝袜久久久中文字幕| 在线不卡免费av| 91精品国产一区二区人妖| 99久久综合精品| 久久精工是国产品牌吗| 视频一区二区三区在线| 亚洲成人免费影院| 亚洲一区二区在线观看视频| 国产欧美日韩精品一区| 中文字幕在线一区| 欧美激情一区二区| 亚洲欧洲性图库| 一区二区久久久久| 亚洲国产cao| 蜜桃av一区二区三区| 国产精华液一区二区三区| 国产乱码精品一区二区三区忘忧草 | 3d成人h动漫网站入口| 国产精品视频免费看| jizz一区二区| 精品国产欧美一区二区| 91久久精品网| 日本韩国欧美国产| 欧美本精品男人aⅴ天堂| 久久亚洲综合av| 亚洲综合丁香婷婷六月香| 亚洲成人精品影院| 国产在线日韩欧美| 91丨porny丨首页| 久久精品亚洲麻豆av一区二区| 五月婷婷激情综合| 风间由美一区二区三区在线观看| 51精品国自产在线| 亚洲欧美另类小说视频| 福利一区二区在线观看| 国产亚洲午夜高清国产拍精品| 欧美不卡一区二区三区| 日本特黄久久久高潮| 中文字幕中文乱码欧美一区二区 | 国产精品一区在线观看乱码 | 国产目拍亚洲精品99久久精品| 日韩一本二本av| ww久久中文字幕| 亚洲精品一二三| 亚洲人成在线播放网站岛国| 国内一区二区视频| 91国在线观看| 亚洲欧美另类久久久精品2019| 日韩中文字幕1| 99精品热视频| 欧美日韩一区中文字幕| 久久久综合精品| 亚洲成人一区在线| 日韩国产一区二| 一区二区免费在线| 亚洲午夜影视影院在线观看| 日本欧美在线观看| 91精品国产色综合久久ai换脸| 亚洲一区中文在线| 欧美日本视频在线| 国产一区二区福利视频| 国产午夜精品一区二区| 一本到不卡免费一区二区| 亚洲国产精品久久艾草纯爱| 日韩一二在线观看| 波多野洁衣一区| 亚洲 欧美综合在线网络| 日韩视频在线一区二区| 91免费版pro下载短视频| 午夜视频久久久久久| 91久久国产最好的精华液| 国产精品18久久久久久久久| 首页综合国产亚洲丝袜| 亚洲在线观看免费视频| 一区二区三区四区不卡视频| 亚洲精选视频免费看| 五月天亚洲精品| 日本成人在线视频网站| 日韩成人一级片| 亚洲主播在线播放| 91国产丝袜在线播放| 一区二区三区四区亚洲| 日韩欧美国产小视频| 国产成人综合亚洲网站| 国产日韩精品久久久| 成人一级视频在线观看| 2024国产精品视频| 精品一区二区三区免费播放| 精品电影一区二区| 菠萝蜜视频在线观看一区| 精品成人免费观看| 欧美精品电影在线播放| 97久久久精品综合88久久| 欧美成人aa大片| 欧美亚州韩日在线看免费版国语版| 丝袜诱惑亚洲看片| 色诱视频网站一区| 午夜久久久久久久久| 国产欧美日韩另类视频免费观看| 亚洲午夜精品网| 在线中文字幕不卡| 一区二区三区不卡视频在线观看 | 懂色av一区二区在线播放| 国产一区二区三区电影在线观看 | 一区二区三区蜜桃| 天涯成人国产亚洲精品一区av| 天使萌一区二区三区免费观看| 午夜精品一区二区三区电影天堂| 美腿丝袜在线亚洲一区| 国产乱码精品一品二品| 91免费视频网| 久久综合色鬼综合色| 亚洲精品成人少妇| 亚洲一区二区三区四区在线观看 | 久久99热这里只有精品| 久久精品国产在热久久| 91精品1区2区| 亚洲欧美另类久久久精品2019| 久久99国产精品麻豆| 欧美日韩精品三区| 91精品国产综合久久久久 | 国内精品免费在线观看| 亚洲va在线va天堂| 中文字幕日本乱码精品影院| 亚洲永久精品大片| 男人的j进女人的j一区| 紧缚捆绑精品一区二区| 欧美性色欧美a在线播放| 欧美区一区二区三区| 99综合电影在线视频| 亚洲综合免费观看高清完整版在线| 亚洲欧美影音先锋| 夜夜嗨av一区二区三区| 青青草伊人久久| 国产成人精品亚洲午夜麻豆| 99久精品国产| 欧美另类z0zxhd电影| 国产视频亚洲色图| 亚洲资源中文字幕| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美一区二区三区色| 久久久www成人免费无遮挡大片| 亚洲特黄一级片| 日韩av二区在线播放| 国产69精品久久99不卡| 欧美日韩一区二区在线观看| 2欧美一区二区三区在线观看视频| 国产精品超碰97尤物18| 免费成人美女在线观看| av电影在线观看不卡| 日韩欧美在线123| 自拍偷自拍亚洲精品播放| 免费观看91视频大全| 91麻豆高清视频| ww久久中文字幕| 丝袜a∨在线一区二区三区不卡| 国产精品99久久久久久宅男| 欧美日韩国产综合久久| 国产精品网友自拍| 久久精品国产**网站演员| 色中色一区二区| 国产精品网站一区| 国产乱人伦偷精品视频免下载| 欧美老肥妇做.爰bbww视频| 1000部国产精品成人观看| 国产美女主播视频一区| 欧美久久久久免费| 一区二区三区美女视频| 不卡视频免费播放| 久久久精品免费网站| 久色婷婷小香蕉久久| 欧美日韩一区在线观看| 一区二区三区中文在线观看|