Files
homelab_gamevault/pgwrapper.py

48 lines
1.3 KiB
Python

import customtkinter
class ProgressBarWrapper:
'''Provide a progress bar wrapper, so PGs can be created and destroyed
on the GUI level without affecting the references stored for updates
in the DataBackend and Software Objects'''
def __init__(self):
self.progress_bar = None
self.progress_text = None
self.tk_parent = None
def update(self):
if self.tk_parent:
self.tk_parent.update_idletasks()
def new(self, tk_parent):
self.tk_parent = tk_parent
self.progress_bar = customtkinter.CTkProgressBar(tk_parent, height=20, width=200)
self.progress_bar["maximum"] = 10000
self.progress_bar.set(0)
return self.progress_bar
def new_text(self, tk_parent):
self.tk_parent = tk_parent
self.progress_text = customtkinter.CTkLabel(tk_parent, height=20, width=130, text="")
return self.progress_text
def get_pb(self):
if self.progress_bar:
return self.progress_bar
else:
raise AssertionError("No progress bar in this wrapper created")
def set_text(self, text):
if self.progress_text:
self.progress_text.configure(text=text)
else:
pass
#FIXME raise AssertionError("No progress text in this wrapper created")