Files
h2inc-old/Multiprocessing test/tkinter_mp.py
2018-02-20 11:34:52 +01:00

57 lines
1.9 KiB
Python

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()