最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python之tkinter進(jìn)度條Progressbar用法解讀

 更新時間:2023年05月09日 11:20:08   作者:qq_1471587327  
這篇文章主要介紹了Python之tkinter進(jìn)度條Progressbar用法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Progressbar 基本概念

Progressbar 可以解釋為進(jìn)度條,主要是當(dāng)做一個工作進(jìn)度的指針,在這個控件中會有一個指針,由此指針可以了解工作進(jìn)度

構(gòu)造方法如下:

Progressbar(父對象, options, ...)

參數(shù):

  • 第一個參數(shù):父對象,表示這個進(jìn)度條將建立在哪一個窗口內(nèi)
  • 第二個參數(shù):options,參數(shù)如下
參數(shù)含義
length進(jìn)度條的長度默認(rèn)是100像素
mode可以有兩種模式,下面作介紹
maximum進(jìn)度條的最大值默認(rèn)是100像素
name進(jìn)度條的名稱,供程序參考引用
orient進(jìn)度條的方向,可以是HORIZONTAL(默認(rèn)) 或者是 VERTICAL
value進(jìn)度條的目前值
variable記錄進(jìn)度條目前的進(jìn)度值

mode參數(shù)

  • determinate:一個指針會從起點(diǎn)移至終點(diǎn),通常當(dāng)我們知道所需工作時間時,可以使用此模式,這是默認(rèn)模式
  • indeterminate:一個指針會在起點(diǎn)和終點(diǎn)間來回移動,通常當(dāng)我們不知道工作所需時間時,可以使用此模式 Progressbar

基本應(yīng)用

例子:

import tkinter
import tkinter.ttk
root = tkinter.Tk()
root.geometry('150x120')
progressbarOne = tkinter.ttk.Progressbar(root)
progressbarOne.pack(pady=20)
# 進(jìn)度值最大值
progressbarOne['maximum'] = 100
# 進(jìn)度值初始值
progressbarOne['value'] = 20
# 橫排 長度200 起點(diǎn)移至終點(diǎn)
progressbarTwo = tkinter.ttk.Progressbar(root, orient=tkinter.HORIZONTAL, length=200, mode='determinate')
progressbarTwo.pack(pady=20)
# 進(jìn)度值最大值
progressbarTwo['maximum'] = 100
# 進(jìn)度值初始值
progressbarTwo['value'] = 80
root.mainloop()

運(yùn)行結(jié)果:

注意:現(xiàn)在進(jìn)度條還不能動!

Progressbar 動畫設(shè)計

如果想要設(shè)計含動畫效果的Progressbar,可以在每次更新Progressbar 對象的value值時調(diào)用update()方法,這時窗口可以依據(jù)value值重繪,這樣就可以達(dá)到動畫效果

例子:

import time
import tkinter
import tkinter.ttk
def show():
    for i in range(100):
        # 每次更新加1
        progressbarOne['value'] = i + 1
        # 更新畫面
        root.update()
        time.sleep(0.05)
root = tkinter.Tk()
root.geometry('150x120')
progressbarOne = tkinter.ttk.Progressbar(root)
progressbarOne.pack(pady=20)
# 進(jìn)度值最大值
progressbarOne['maximum'] = 100
# 進(jìn)度值初始值
progressbarOne['value'] = 0
button = tkinter.Button(root, text='Running', command=show)
button.pack(pady=5)
root.mainloop()

運(yùn)行結(jié)果:

例子:

模擬真實下載,下載總量是10000B, 每次下載500B

def show():
    # 設(shè)置進(jìn)度條的目前值
    progressbarOne['value'] = 0
    # 設(shè)置進(jìn)度條的最大值
    progressbarOne['maximum'] = maxbyte
    # 調(diào)用loading方法
    loading()
def loading():
    # 改變變量屬性
    global byte
    # 每次運(yùn)行500B
    byte += 500
    # 設(shè)置指針
    progressbarOne['value'] = byte
    if byte < maxbyte:
        # 經(jīng)過100ms后再次調(diào)用loading方法
        progressbarOne.after(100, loading)
root = tkinter.Tk()
root.geometry('150x120')
# 設(shè)置下載初值
byte = 0
# 設(shè)置下載最大值
maxbyte = 10000
progressbarOne = tkinter.ttk.Progressbar(root)
progressbarOne.pack(pady=20)
button = tkinter.Button(root, text='Running', command=show)
button.pack(pady=5)
root.mainloop()

運(yùn)行結(jié)果:

Progressbar 的方法 start()/step()/stop()

含義如下:

  • start(interval):每隔interval時間移動一次指針。interval的默認(rèn)值是50ms,每次移動指針調(diào)用一次step(amount)。在step()方法內(nèi)的amount參數(shù)意義就是增值量
  • step(amount):每次增加一次amount,默認(rèn)值是1.0,在determinate模式下,指針不會超過maximum參數(shù)。在indeterminate模式下,當(dāng)指針達(dá)到maximum參數(shù)值的前一格時,指針會回到起點(diǎn)
  • stop():停止start()運(yùn)行

例子:

import time
import tkinter
import tkinter.ttk
def show():
    while progressbarOne.cget('value') <= progressbarOne['maximum']:
        progressbarOne.step(2)
        root.update()
        print(progressbarOne.cget('value'))
        time.sleep(0.05)
root = tkinter.Tk()
root.geometry('150x120')
progressbarOne = tkinter.ttk.Progressbar(root, length=200, mode='determinate', orient=tkinter.HORIZONTAL)
progressbarOne.pack(pady=20)
progressbarOne['maximum'] = 100
progressbarOne['value'] = 0
button = tkinter.Button(root, text='Running', command=show)
button.pack(pady=5)
root.mainloop()

運(yùn)行結(jié)果:

使用start()方法啟動動畫,單擊stop按鈕停止

例子:

import tkinter
import tkinter.ttk
def run():
    progressbarOne.start()
def stop():
    progressbarOne.stop()
root = tkinter.Tk()
root.geometry('150x120')
progressbarOne = tkinter.ttk.Progressbar(root, length=200, mode='determinate', orient=tkinter.HORIZONTAL)
progressbarOne.pack(padx=5, pady=10)
progressbarOne['maximum'] = 100
progressbarOne['value'] = 0
buttonRun = tkinter.Button(root, text='Run', width=6, command=run)
buttonRun.pack(padx=10, pady=5, side=tkinter.LEFT)
buttonStop = tkinter.Button(root, text='Stop', width=6, command=stop)
buttonStop.pack(padx=10, pady=5, side=tkinter.RIGHT)
root.mainloop()

運(yùn)行結(jié)果:

indeterminate 模式

在這個模式下指針將左右移動,主要目的是讓用戶知道程序仍然在繼續(xù)工作

例子:

progressbarOne = tkinter.ttk.Progressbar(root, length=200, mode='indeterminate', orient=tkinter.HORIZONTAL)

運(yùn)行結(jié)果:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python如何測試InnoDB與MyISAM的讀寫性能

    使用Python如何測試InnoDB與MyISAM的讀寫性能

    網(wǎng)上有很多評論myisam和innodb讀寫性能對比,所以下面這篇文章主要給大家介紹了關(guān)于使用Python如何測試InnoDB與MyISAM讀寫性能的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • python3中property使用方法詳解

    python3中property使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了python3中的property使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python中time模塊的常用方法及應(yīng)用詳解

    python中time模塊的常用方法及應(yīng)用詳解

    在Python開發(fā)中,時間處理是繞不開的剛需場景,從性能計時到定時任務(wù),從日志記錄到數(shù)據(jù)同步,時間模塊始終是開發(fā)者最得力的工具之一,本文將通過真實案例和簡潔代碼,系統(tǒng)講解time模塊的6大核心方法及其典型應(yīng)用場景,需要的朋友可以參考下
    2025-03-03
  • Python二叉搜索樹與雙向鏈表轉(zhuǎn)換算法示例

    Python二叉搜索樹與雙向鏈表轉(zhuǎn)換算法示例

    這篇文章主要介紹了Python二叉搜索樹與雙向鏈表轉(zhuǎn)換算法,涉及Python二叉樹構(gòu)建、遍歷及鏈表構(gòu)造等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • python正則中最短匹配實現(xiàn)代碼

    python正則中最短匹配實現(xiàn)代碼

    這篇文章主要介紹了python正則中最短匹配實現(xiàn)代碼,需要的朋友可以參考下
    2018-01-01
  • python使用celery實現(xiàn)異步任務(wù)執(zhí)行的例子

    python使用celery實現(xiàn)異步任務(wù)執(zhí)行的例子

    今天小編就為大家分享一篇python使用celery實現(xiàn)異步任務(wù)執(zhí)行的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Pycharm生成可執(zhí)行文件.exe的實現(xiàn)方法

    Pycharm生成可執(zhí)行文件.exe的實現(xiàn)方法

    這篇文章主要介紹了Pycharm生成可執(zhí)行文件.exe的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python實現(xiàn)建立SSH連接的方法

    Python實現(xiàn)建立SSH連接的方法

    這篇文章主要介紹了Python實現(xiàn)建立SSH連接的方法,涉及pycrypto和paramiko兩個模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • python 自動化將markdown文件轉(zhuǎn)成html文件的方法

    python 自動化將markdown文件轉(zhuǎn)成html文件的方法

    這篇文章主要介紹了python 自動化將markdown文件轉(zhuǎn)成html文件的方法的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • python實現(xiàn)掃雷小游戲

    python實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論

柳江县| 滦南县| 安庆市| 竹山县| 琼结县| 哈密市| 康乐县| 苍山县| 乌兰县| 永德县| 曲松县| 敖汉旗| 措勤县| 乌兰县| 承德市| 嘉峪关市| 晋江市| 敖汉旗| 长汀县| 绍兴市| 治多县| 晋州市| 长沙县| 玉龙| 盐源县| 满洲里市| 巴马| 永春县| 南陵县| 青神县| 大理市| 柳林县| 双城市| 漳平市| 临夏县| 二连浩特市| 西峡县| 象山县| 原平市| 泊头市| 德安县|