"Dashboard" design for progress meters.

Dashboard type of design that includes 20 Progress Meters.  Able to see the progess meters after they have competed.
This commit is contained in:
MikeTheWatchGuy 2018-08-24 21:23:57 -04:00
parent 595b3c0993
commit 17d87870e7
1 changed files with 32 additions and 8 deletions

View File

@ -1,4 +1,4 @@
import PySimpleGUI as gui
import PySimpleGUI as g
from chatterbot import ChatBot
import chatterbot.utils
@ -9,10 +9,34 @@ The GUI is used to show progress bars during the training process and
to collect user input that is sent to the chatbot. The reply is displayed in the GUI window
'''
# redefine the chatbot text based progress bar with a graphical one
def print_progress_bar(description, iteration_counter, total_items, progress_bar_length=20):
gui.EasyProgressMeter(description, iteration_counter, total_items)
# Create the 'Trainer GUI'
MAX_PROG_BARS = 20
bars = []
texts = []
training_layout = [[g.T('TRAINING PROGRESS', size=(20,1), font=('Helvetica', 17))]]
for i in range(MAX_PROG_BARS):
bars.append(g.ProgressBar(100, size=(30, 5)))
texts.append(g.T(' '*20))
training_layout += [[texts[i], bars[i]]]
training_form = g.FlexForm('Training')
training_form.Layout(training_layout)
current_bar = 0
# callback function for training runs
def print_progress_bar(description, iteration_counter, total_items, progress_bar_length=20):
global current_bar
global bars
global texts
global training_form
# update the form and the bars
training_form.ReadNonBlocking()
bars[current_bar].UpdateBar(iteration_counter, max=total_items)
texts[current_bar].Update(description)
if iteration_counter == total_items:
current_bar += 1
# redefine the chatbot text based progress bar with a graphical one
chatterbot.utils.print_progress_bar = print_progress_bar
chatbot = ChatBot('Ron Obvious', trainer='chatterbot.trainers.ChatterBotCorpusTrainer')
@ -21,10 +45,10 @@ chatbot = ChatBot('Ron Obvious', trainer='chatterbot.trainers.ChatterBotCorpusTr
chatbot.train("chatterbot.corpus.english")
################# GUI #################
with gui.FlexForm('Chat Window', auto_size_text=True, default_element_size=(30, 2)) as form:
layout = [ [gui.Output(size=(80, 20))],
[gui.Multiline(size=(70, 5), enter_submits=True),
gui.ReadFormButton('SEND', bind_return_key=True), gui.SimpleButton('EXIT')]]
with g.FlexForm('Chat Window', auto_size_text=True, default_element_size=(30, 2)) as form:
layout = [[g.Output(size=(80, 20))],
[g.Multiline(size=(70, 5), enter_submits=True),
g.ReadFormButton('SEND', bind_return_key=True), g.SimpleButton('EXIT')]]
form.Layout(layout)
# ---===--- Loop taking in user input and using it to query HowDoI web oracle --- #