2

Tkinter を使用して Python (2.7) で簡単なアプリを開発しました。しかし、私のステータスバーは機能しているだけです。簡略化されたコードは次のとおりです。

from Tkinter import *
import os
import sys

def fixFiles():
    inputFilePath= input_dir.get()

    #Build a list of files in a directory
    fileList = os.listdir(inputFilePath)

    #Loop through those files, open the file, do something, close the file
    for filename in fileList:
        infile = open(inputfilepath + "/" + filename,'r')

        #Update the status with the filename
        status_string = 'Status: Working on file: ' + str(filename)
        status.set(status_string)

        for line in infile:
            #Do some stuff here
        infile.close()  

class App:
    def __init__(self, master):
            i = 0
        status.set("Status: Press 'Fix Files!'")
        statuslabel = Label(master, textvariable=status, relief = RIDGE, width = 65, pady = 5, anchor=W)
        bFixFiles = Button(root, text='Fix Files!', command = fixFiles)
        bQuit = Button(root, text='Quit', command = root.destroy)

        statuslabel.grid(row=i, column = 0, columnspan = 2)
        bFixFiles.grid(row=i, column=2, sticky=E)
        bQuit.grid(row=i, column=3, sticky=W)

root = Tk()
root.title("FIX Files")
input_dir = StringVar()
status = StringVar()
choice = IntVar()
app = App(root)
root.mainloop()

現在何が起こっているかというと、プログラムがファイルのループ処理を終了するまでステータス バーに「ステータス: 'Fix Files!' を押してください!」と表示され、その時点で「ステータス: ファイルの処理中: XXXXX.txt」と表示されます (これは名前です)。プログラムによって最後に開かれ、閉じられたファイルの。

プログラムが新しいファイルを開くたびに、ステータス バーがファイル名で更新されるようにします。どんな助けでも大歓迎です!

4

1 に答える 1