0

以下のように、Python でファイルを読み取るループがあります。

def Rfile():
    for fileName in fileList:
….

for ループと fileList のサイズ (ループの前に開始し、ループの後に閉じる) にリンクされる tkinter プログレス バーを追加するにはどうすればよいですか?

どうも

4

1 に答える 1

3

この小さなスクリプトは、その方法を示しています。

import tkinter as tk
from time import sleep

# The truncation will make the progressbar more accurate
# Note however that no progressbar is perfect
from math import trunc

# You will need the ttk module for this
from tkinter import ttk

# Just to demonstrate
fileList = range(10)

# How much to increase by with each iteration
# This formula is in proportion to the length of the progressbar
step = trunc(100/len(fileList))

def MAIN():
    """Put your loop in here"""
    for fileName in fileList:
        # The sleeping represents a time consuming process
        # such as reading a file.
        sleep(1)

        # Just to demonstrate
        print(fileName)

        # Update the progressbar
        progress.step(step)
        progress.update()

    root.destroy()

root = tk.Tk()

progress = ttk.Progressbar(root, length=100)
progress.pack()

# Launch the loop once the window is loaded
progress.after(1, MAIN)

root.mainloop()

いつでも微調整して、ニーズを完全に満たすことができます。

于 2013-07-26T21:40:02.377 に答える