summaryrefslogtreecommitdiff
path: root/tk.py
blob: e9ba669f53e19ecf54de4618e60df980ecbdf0c6 (plain)
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)