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

Tkinter使用Progressbar創(chuàng)建和管理進(jìn)度條的操作代碼

 更新時(shí)間:2023年07月12日 16:37:39   作者:檬檸wan  
Progressbar是Tkinter庫中的一個(gè)小部件,用于創(chuàng)建和管理進(jìn)度條,這篇文章主要介紹了Tkinter使用Progressbar創(chuàng)建和管理進(jìn)度條,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

前言

Progressbar是Tkinter庫中的一個(gè)小部件,用于創(chuàng)建和管理進(jìn)度條。它可以在圖形用戶界面中顯示任務(wù)的進(jìn)度,并提供了多種樣式和配置選項(xiàng)。

使用Progressbar,你可以按照固定或不確定的進(jìn)度展示任務(wù)的進(jìn)行狀態(tài)。它可以顯示任務(wù)完成的百分比,或者在不確定的情況下,顯示一個(gè)動(dòng)畫效果表示任務(wù)正在進(jìn)行。

以下是一些Progressbar的重要屬性和方法:

  • length:指定進(jìn)度條的長度。
  • mode:指定進(jìn)度條的模式,可以是"determinate"(確定模式)或"indeterminate"(不確定模式)。
  • maximum:設(shè)置進(jìn)度條的最大值,默認(rèn)為100。
  • value:設(shè)置進(jìn)度條的當(dāng)前值。
  • start():啟動(dòng)進(jìn)度條的動(dòng)畫效果,僅在不確定模式下有效。
  • stop():停止進(jìn)度條的動(dòng)畫效果,僅在不確定模式下有效。

通過使用這些屬性和方法,你可以創(chuàng)建一個(gè)自定義的進(jìn)度條并根據(jù)需要進(jìn)行更新和控制。

一、indeterminate 模式

在這個(gè)模式下指針左右移動(dòng),主要目的是要讓用戶知道程序還在運(yùn)行

import tkinter as tk
from tkinter.ttk import Progressbar
class Simulate_Waiting_State:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('進(jìn)度條下載演示')
        self.root.geometry("300x150+1100+150")
        self.interface()
    def interface(self):
        # 創(chuàng)建進(jìn)度條
        self.progress_bar = Progressbar(self.root, length=200, mode="indeterminate")
        # 創(chuàng)建按鈕
        self.start_button = tk.Button(self.root, text="開始", command=self.start_progress)
        self.stop_button = tk.Button(self.root, text="停止", command=self.stop_progress)
        # 將進(jìn)度條和按鈕放置在窗口中
        self.progress_bar.grid(row=0, column=1, pady=20, padx=50, columnspan=100)
        self.start_button.grid(row=1, column=1, padx=75)
        self.stop_button.grid(row=1, column=3)
    def start_progress(self):
        self.progress_bar.start()
    def stop_progress(self):
        self.progress_bar.stop()
if __name__ == '__main__':
    run = Simulate_Waiting_State()
    run.root.mainloop()
import tkinter as tk
from tkinter.ttk import Progressbar
class Simulate_Waiting_State:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('進(jìn)度條下載演示')
        self.root.geometry("300x150+1100+150")
        self.interface()
    def interface(self):
        # 創(chuàng)建進(jìn)度條
        self.progress_bar = Progressbar(self.root, length=200, mode="indeterminate")
        # 創(chuàng)建按鈕
        self.start_button = tk.Button(self.root, text="開始", command=self.start_progress)
        self.stop_button = tk.Button(self.root, text="停止", command=self.stop_progress)
        # 將進(jìn)度條和按鈕放置在窗口中
        self.progress_bar.grid(row=0, column=1, pady=20, padx=50, columnspan=100)
        self.start_button.grid(row=1, column=1, padx=75)
        self.stop_button.grid(row=1, column=3)
    def start_progress(self):
        self.progress_bar.start()
    def stop_progress(self):
        self.progress_bar.stop()
if __name__ == '__main__':
    run = Simulate_Waiting_State()
    run.root.mainloop()

請?zhí)砑訄D片描述

二、determinate模式

1、模擬下載進(jìn)度

import tkinter as tk
from tkinter.ttk import Progressbar
import threading
import time
class Download_Files:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('進(jìn)度條下載演示')
        self.root.geometry("300x150+1100+150")
        self.interface()
    def interface(self):
        # 創(chuàng)建進(jìn)度條
        self.progress_bar = Progressbar(self.root, length=200, mode="determinate")
        # 創(chuàng)建按鈕
        self.start_button = tk.Button(self.root, text="開始下載", command=self.download)
        # 將進(jìn)度條和按鈕放置在窗口中
        self.progress_bar.grid(row=0, pady=20, padx=50)
        self.start_button.grid(row=1, padx=50)
        # 進(jìn)度值最大值
        self.progress_bar['maximum'] = 100
    def download(self):
        """進(jìn)度條模擬顯示下載進(jìn)度"""
        # 進(jìn)度值初始值
        initial_value = 0
        while initial_value < 100:
            initial_value += 1
            # 更新進(jìn)度條的值
            self.progress_bar['value'] = initial_value
            self.root.update()
            # 模擬等待時(shí)間時(shí)間
            time.sleep(0.1)
    def thread_management(self):
        """啟用子線程下載文件"""
        T1 = threading.Thread(target=self.download, daemon=True)
        T1.start()
if __name__ == '__main__':
    run = Download_Files()
    run.root.mainloop()

2、真實(shí)下載進(jìn)度

import tkinter as tk
from tkinter.ttk import Progressbar
from tkinter import messagebox
import threading
import requests
class Download_Files:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('進(jìn)度條下載演示')
        self.root.geometry("300x150+850+350")
        self.interface()
    def interface(self):
        # 創(chuàng)建進(jìn)度條
        self.progress_bar = Progressbar(self.root, length=200, mode="determinate")
        # 創(chuàng)建按鈕
        self.start_button = tk.Button(self.root, text="開始下載", command=self.thread_group)
        # 將進(jìn)度條和按鈕放置在窗口中
        self.progress_bar.grid(row=0, pady=20, padx=50)
        self.start_button.grid(row=1, padx=50)
    def download(self):
        # 禁用按鈕
        self.start_button.config(state=tk.DISABLED)
        # 下載地址
        url = 'http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2'
        file_data = requests.get(url, stream=True)
        # 獲取文件大小,單位字節(jié)(B)
        if "content-length" in file_data.headers:
            maxbyte = int(file_data.headers["content-length"])
        # 截取文件名稱
        filename = url.split("/")[-1]
        with open(filename, "wb") as f:
            downloaded_bytes = 0
            for chunk in file_data.iter_content(chunk_size=1024):
                if chunk:
                    f.write(chunk)
                    downloaded_bytes += len(chunk)
                    # 更新進(jìn)度條的值
                    # 將已下載的字節(jié)數(shù)除以文件總大小(maxbyte),然后乘以100,得到已下載的數(shù)據(jù)量相對于文件總大小的百分比
                    self.progress_bar['value'] = downloaded_bytes / maxbyte * 100
                    self.root.update()
        # 彈窗提示下載完成
        messagebox.showinfo("下載提示", "文件下載完成!")
        # 恢復(fù)按鈕的可點(diǎn)擊狀態(tài)
        self.start_button.config(state=tk.NORMAL)
        # 下載完成后重置進(jìn)度條的值
        self.progress_bar['value'] = 0
    def thread_group(self):
        """啟用子線程下載"""
        T1 = threading.Thread(name='download', target=self.download, daemon=True)
        T1.start()
if __name__ == '__main__':
    run = Download_Files()
    run.root.mainloop()

請?zhí)砑訄D片描述

到此這篇關(guān)于Tkinter使用Progressbar創(chuàng)建和管理進(jìn)度條的文章就介紹到這了,更多相關(guān)Tkinter Progressbar進(jìn)度條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python爬蟲之遍歷單個(gè)域名

    python爬蟲之遍歷單個(gè)域名

    在本篇文章里小編給大家整理的是一篇關(guān)于python遍歷單個(gè)域名的知識(shí)點(diǎn)和操作方法,有需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • 深入理解最新Python中的Match Case

    深入理解最新Python中的Match Case

    最近發(fā)布的 Python 3.10 的所有主要新特性中最重要就是 Match-Case 語法,本文將帶你深入探討,會(huì)發(fā)現(xiàn) Match-Case 其實(shí)沒有那么簡單
    2021-11-11
  • 18個(gè)好用的Python技巧分享(建議收藏)

    18個(gè)好用的Python技巧分享(建議收藏)

    在這篇文章中,我們將討論最常用的一些python技巧,這些技巧都是在日常工作中使用過的簡單的Trick,小編覺得好東西就是要拿出來和大家一起分享噠
    2023-07-07
  • Python中的enumerate() 函數(shù)用法詳解

    Python中的enumerate() 函數(shù)用法詳解

    enumerate()是python的內(nèi)置函數(shù),將一個(gè)可遍歷iterable數(shù)據(jù)對象(如list列表、tuple元組或str字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中,這篇文章主要介紹了Python中的enumerate() 函數(shù)用法詳解,需要的朋友可以參考下
    2024-01-01
  • Python實(shí)現(xiàn)string字符串連接的方法總結(jié)【8種方式】

    Python實(shí)現(xiàn)string字符串連接的方法總結(jié)【8種方式】

    這篇文章主要介紹了Python實(shí)現(xiàn)string字符串連接的方法,結(jié)合實(shí)例形式總結(jié)分析了Python實(shí)現(xiàn)字符串連接的8種常見操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python Django ORM連表正反操作技巧

    Python Django ORM連表正反操作技巧

    這篇文章主要介紹了Django-ORM-連表正反操作,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-06-06
  • pandas中Series的使用方式

    pandas中Series的使用方式

    這篇文章主要介紹了pandas中Series的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python實(shí)現(xiàn)紅包裂變算法

    python實(shí)現(xiàn)紅包裂變算法

    這篇文章主要介紹了python實(shí)現(xiàn)紅包裂變算法的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • python字符串運(yùn)算符詳情

    python字符串運(yùn)算符詳情

    這篇文章主要介紹了 python字符串運(yùn)算符詳情,在編程里,用的最多的就是字符串,字符串同時(shí)也是各類數(shù)據(jù)的中轉(zhuǎn)站,下文基于python的相關(guān)資料介紹字符串運(yùn)算符,需要的小伙伴可以參考一下
    2022-04-04
  • Python xlwt模塊使用代碼實(shí)例

    Python xlwt模塊使用代碼實(shí)例

    這篇文章主要介紹了Python xlwt模塊使用代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評論

彰化市| 德庆县| 县级市| 弥勒县| 郴州市| 陇川县| 同仁县| 安康市| 台中市| 平安县| 南江县| 清水河县| 天长市| 独山县| 班戈县| 罗江县| 云阳县| 云南省| 旌德县| 苏尼特右旗| 云和县| 西青区| 剑阁县| 原平市| 宁陕县| 乌拉特前旗| 兰考县| 中超| 乃东县| 常山县| 策勒县| 江陵县| 盘山县| 海丰县| 邯郸县| 乐至县| 新源县| 新建县| 祥云县| 宁都县| 平武县|