1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#!/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)
|