Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / doc / example.py
CommitLineData
920dae64
AT
1import Tkinter
2import Pmw
3
4class ThresholdScale(Pmw.MegaWidget):
5 """ Megawidget containing a scale and an indicator.
6 """
7
8 def __init__(self, parent = None, **kw):
9
10 # Define the megawidget options.
11 optiondefs = (
12 ('colors', ('green', 'red'), None),
13 ('threshold', 50, None),
14 ('value', None, Pmw.INITOPT),
15 )
16 self.defineoptions(kw, optiondefs)
17
18 # Initialise base class (after defining options).
19 Pmw.MegaWidget.__init__(self, parent)
20
21 # Create the components.
22 interior = self.interior()
23
24 # Create the indicator component.
25 self.indicator = self.createcomponent('indicator',
26 (), None,
27 Tkinter.Frame, interior,
28 width = 16,
29 height = 16,
30 borderwidth = 2,
31 relief = 'raised')
32 self.indicator.grid()
33
34 # Create the scale component.
35 self.scale = self.createcomponent('scale',
36 (), None,
37 Tkinter.Scale, interior,
38 command = self._doCommand,
39 tickinterval = 20,
40 length = 200,
41 from_ = 100,
42 to = 0,
43 showvalue = 0)
44 self.scale.grid()
45
46 value = self['value']
47 if value is not None:
48 self.scale.set(value)
49
50 # Check keywords and initialise options.
51 self.initialiseoptions()
52
53 def _doCommand(self, valueStr):
54 if self.scale.get() > self['threshold']:
55 color = self['colors'][1]
56 else:
57 color = self['colors'][0]
58 self.indicator.configure(background = color)
59
60Pmw.forwardmethods(ThresholdScale, Tkinter.Scale, 'scale')
61
62# Initialise Tkinter and Pmw.
63root = Pmw.initialise()
64root.title('Pmw ThresholdScale demonstration')
65
66# Create and pack two ThresholdScale megawidgets.
67mega1 = ThresholdScale()
68mega1.pack(side = 'left', padx = 10, pady = 10)
69
70mega2 = ThresholdScale(
71 colors = ('green', 'yellow'),
72 threshold = 75,
73 value = 80,
74 indicator_width = 32,
75 scale_width = 25)
76mega2.pack(side = 'left', padx = 10, pady = 10)
77
78# Let's go.
79root.mainloop()