from multiprocessing import Process, Value, Lock from tkinter import Tk from tkinter import Tk, ttk, Label, Button, LabelFrame from tkinter import Grid, StringVar, DoubleVar from tkinter import N, E, S, W from tkinter import DISABLED, NORMAL import os import sys dirname = 'C:\\Users\\dksojlg\\Documents' platform = sys.platform print(platform) class testGUI: def __init__(self, master, initval=0): self.progress = Value('i', initval) self.dircount = Value('i', initval) self.foldercnt = 'Folders: {}'.format(self.dircount.value) self.lock = Lock() self.master = master self.master.title('Multiprocess progressbar test!') self.master.grid_columnconfigure(1, weight=1) self.frame = LabelFrame(master, text='Folder count') self.frame.grid(row=0, column=0, columnspan=3, sticky=N+S+E+W, padx=5, pady=5) self.frame.grid_columnconfigure(1, weight=1) self.sourcelabel = Label(self.frame, text=self.foldercnt) self.sourcelabel.grid(row=0, column=0, sticky=E, padx=(5, 1), pady=5) self.sourcedir_button = Button(self.frame, text="Count folders...", command= lambda: get_directories(self)) self.sourcedir_button.grid(row=0, column=2, sticky=W, padx=(3, 5), pady=5) def increment_dir(self): with self.lock: self.dircount.value += 1 self.sourcelabel.config(text=self.foldercnt) def read_dir(testgui, dirname): for folderName, subfolders, files in os.walk(dirname): if subfolders: for subfolder in subfolders: read_dir(testgui, subfolder) #testgui.increment_dir() def get_directories(testgui): p = Process(target=read_dir, args=(testgui, dirname,)) p.start() if __name__ == "__main__": root = Tk() root.update() root.resizable(False, False) testgui = testGUI(root) root.mainloop()