#!/usr/bin/env python3 """Module containing Tk widgets for BLC.""" from tkinter import Frame, N, E, S, W, VERTICAL from tkinter.ttk import Label, Scale class DMXView(Frame): """Class for viewing DMX values.""" def update_vals(self, vals:tuple): """Update the current values. Parameters: vals: a tuple of (channel, value) pairs. values must be integers from 0 to 255, inclusive. """ for c,v in vals: self.channels[c-1-self.offset].set(255-v) def __init__(self, master, count=36, offset=0): super().__init__(master) self.channels = [] self.offset = 0 self.rowconfigure(0,weight=1) for c in range(count): self.columnconfigure(c,weight=1) s = Scale(self, from_=0, to=255, orient=VERTICAL, length=300) s.grid(row=0, column=c, sticky=N+E+S+W) s.set(255) Label(self, text=str(c+1+offset)).grid(row=1, column=c,sticky=N+E+S+W) self.channels.append(s)