Adds main canvas and improved temp reading
This commit is contained in:
41306
copycat.log
41306
copycat.log
File diff suppressed because it is too large
Load Diff
@ -5,9 +5,43 @@ import time
|
|||||||
|
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
import tkinter.ttk as ttk
|
import tkinter.ttk as ttk
|
||||||
|
|
||||||
from tkinter import scrolledtext
|
from tkinter import scrolledtext
|
||||||
from tkinter import filedialog
|
from tkinter import filedialog
|
||||||
|
|
||||||
|
font1Size = 32
|
||||||
|
font2Size = 16
|
||||||
|
font1 = ('Helvetica', str(font1Size))
|
||||||
|
font2 = ('Helvetica', str(font2Size))
|
||||||
|
|
||||||
|
def create_main_canvas(root, initial, final, new, guess):
|
||||||
|
padding = 100
|
||||||
|
|
||||||
|
canvas = tk.Canvas(root, borderwidth=5, relief=tk.GROOVE, background='#70747a')
|
||||||
|
|
||||||
|
def add_sequences(sequences, x, y):
|
||||||
|
for sequence in sequences:
|
||||||
|
x += padding
|
||||||
|
for char in sequence:
|
||||||
|
canvas.create_text(x, y, text=char, anchor=tk.NW, font=font1, fill='white')
|
||||||
|
x += font1Size
|
||||||
|
return x, y
|
||||||
|
|
||||||
|
x = 0
|
||||||
|
y = padding
|
||||||
|
|
||||||
|
add_sequences([initial, final], x, y)
|
||||||
|
|
||||||
|
x = 0
|
||||||
|
y += padding
|
||||||
|
|
||||||
|
add_sequences([new, guess], x, y)
|
||||||
|
|
||||||
|
canvas['height'] = str(int(canvas['height']) + padding)
|
||||||
|
canvas['width'] = str(int(canvas['width']) + padding)
|
||||||
|
|
||||||
|
return canvas
|
||||||
|
|
||||||
class MainApplication(ttk.Frame):
|
class MainApplication(ttk.Frame):
|
||||||
MAX_COLUMNS = 10
|
MAX_COLUMNS = 10
|
||||||
|
|
||||||
@ -17,33 +51,20 @@ class MainApplication(ttk.Frame):
|
|||||||
|
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.create_widgets()
|
self.create_widgets()
|
||||||
|
self.canvas = None
|
||||||
self.columnconfigure(0)
|
self.columnconfigure(0)
|
||||||
self.rowconfigure(0)
|
self.rowconfigure(0)
|
||||||
|
|
||||||
def create_widgets(self):
|
def create_widgets(self):
|
||||||
"""Contains all widgets in main application."""
|
self.canvas = create_main_canvas(self, 'abc', 'abd', 'ijk', '')
|
||||||
|
self.canvas.grid(column=0, row=0, sticky=tk.N+tk.S+tk.E+tk.W)
|
||||||
|
|
||||||
main_label = ttk.Label(self, text="abc:abd::ijk:?", background='black', foreground='white')
|
temp_label = ttk.Label(self, text='', background='#70747a', foreground='white', borderwidth=5, relief=tk.GROOVE, font=font2, padding=30)
|
||||||
main_label.grid(column=0, row=0, columnspan=9, rowspan=4, sticky=tk.N)#+tk.S+tk.E+tk.W)
|
temp_label.grid(column=1, row=0, sticky=tk.N+tk.S+tk.E+tk.W)
|
||||||
self.widgets['main'] = main_label
|
|
||||||
temp_label = ttk.Label(self, text='temp')
|
|
||||||
temp_label.grid(column=9, row=0, rowspan=1, sticky=tk.N+tk.S+tk.E+tk.W)
|
|
||||||
self.widgets['temp'] = temp_label
|
self.widgets['temp'] = temp_label
|
||||||
|
|
||||||
def update_slipnodes(self, slipnodes):
|
def update_slipnodes(self):
|
||||||
slipnodes = [(node.name, round(node.activation, 2)) for node in slipnodes]
|
self.canvas = create_main_canvas(self.root, 'abc', 'abd', 'ijk', '')
|
||||||
row = 0
|
|
||||||
for i, (name, amount) in enumerate(slipnodes):
|
|
||||||
column = i % MainApplication.MAX_COLUMNS
|
|
||||||
if column == 0 and i != 0:
|
|
||||||
row += 1
|
|
||||||
text = text='{}\n({})'.format(name, amount)
|
|
||||||
if name not in self.widgets:
|
|
||||||
l = ttk.Label(self, text=text)
|
|
||||||
l.grid(column=column*2, columnspan=2, row=row+3, sticky=tk.N+tk.S+tk.E+tk.W)
|
|
||||||
self.widgets[name] = l
|
|
||||||
else:
|
|
||||||
self.widgets[name]['text'] = text
|
|
||||||
|
|
||||||
class GUI(object):
|
class GUI(object):
|
||||||
def __init__(self, title):
|
def __init__(self, title):
|
||||||
@ -56,5 +77,5 @@ class GUI(object):
|
|||||||
def update(self, temp, slipnodes):
|
def update(self, temp, slipnodes):
|
||||||
self.root.update_idletasks()
|
self.root.update_idletasks()
|
||||||
self.root.update()
|
self.root.update()
|
||||||
self.app.widgets['temp']['text'] = 'Temp:({})'.format(temp)
|
self.app.widgets['temp']['text'] = 'Temp:\n{}'.format(round(temp, 2))
|
||||||
self.app.update_slipnodes(slipnodes)
|
self.app.update()
|
||||||
|
|||||||
Reference in New Issue
Block a user