--- Pmw-2.1.1/Pmw/Pmw_2_1_1/doc/exercises.orig.py 2024-01-16 20:29:25.109576174 +0200
+++ Pmw-2.1.1/Pmw/Pmw_2_1_1/doc/exercises.py 2024-01-16 20:41:17.246644768 +0200
@@ -1,10 +1,10 @@
-import tkinter
+import tkinter
import Pmw
-
+
class ThresholdScale(Pmw.MegaWidget):
""" Megawidget containing a scale and an indicator.
"""
-
+
def __init__(self, parent = None, **kw):
# Define the megawidget options.
optiondefs = (
@@ -16,13 +16,13 @@
('value', None, Pmw.INITOPT),
)
self.defineoptions(kw, optiondefs)
-
+
# Initialise base class (after defining options).
Pmw.MegaWidget.__init__(self, parent)
-
+
# Create the components.
interior = self.interior()
-
+
# Create the indicator component.
self.indicator = self.createcomponent('indicator',
(), None,
@@ -31,69 +31,69 @@
height = 16,
borderwidth = 2,
relief = 'raised')
-
+
# Create the value component.
self.value = self.createcomponent('value',
(), None,
tkinter.Label, interior,
width = 3)
-
+
# Create the scale component.
- if self['orient'] == 'vertical':
- # The default scale range seems to be
- # the wrong way around - reverse it.
- from_ = 100
- to = 0
- else:
- from_ = 0
- to = 100
+ if self['orient'] == 'vertical':
+ # The default scale range seems to be
+ # the wrong way around - reverse it.
+ from_ = 100
+ to = 0
+ else:
+ from_ = 0
+ to = 100
- self.scale = self.createcomponent('scale',
- (), None,
- tkinter.Scale, interior,
- orient = self['orient'],
- command = self._doCommand,
- tickinterval = 20,
- length = 200,
- from_ = from_,
- to = to,
- showvalue = 0)
-
- value = self['value']
- if value is not None:
- self.scale.set(value)
-
- # Use grid to position all components
- if self['orient'] == 'vertical':
- self.indicator.grid(row = 1, column = 1)
- self.value.grid(row = 2, column = 1)
- self.scale.grid(row = 3, column = 1)
- # Create the label.
- self.createlabel(interior, childRows=3)
- else:
- self.indicator.grid(row = 1, column = 1)
- self.value.grid(row = 1, column = 2)
- self.scale.grid(row = 1, column = 3)
- # Create the label.
- self.createlabel(interior, childCols=3)
+ self.scale = self.createcomponent('scale',
+ (), None,
+ tkinter.Scale, interior,
+ orient = self['orient'],
+ command = self._doCommand,
+ tickinterval = 20,
+ length = 200,
+ from_ = from_,
+ to = to,
+ showvalue = 0)
+
+ value = self['value']
+ if value is not None:
+ self.scale.set(value)
- # Check keywords and initialise options.
- self.initialiseoptions()
+ # Use grid to position all components
+ if self['orient'] == 'vertical':
+ self.indicator.grid(row = 1, column = 1)
+ self.value.grid(row = 2, column = 1)
+ self.scale.grid(row = 3, column = 1)
+ # Create the label.
+ self.createlabel(interior, childRows=3)
+ else:
+ self.indicator.grid(row = 1, column = 1)
+ self.value.grid(row = 1, column = 2)
+ self.scale.grid(row = 1, column = 3)
+ # Create the label.
+ self.createlabel(interior, childCols=3)
+
+ # Check keywords and initialise options.
+ self.initialiseoptions()
def _doCommand(self, valueStr):
- valueInt = self.scale.get()
- colors = self['colors']
- thresholds = self['threshold']
- color = colors[-1]
- for index in range(len(colors) - 1):
- if valueInt <= thresholds[index]:
- color = colors[index]
- break
- self.indicator.configure(background = color)
- self.value.configure(text = valueStr)
+ valueInt = self.scale.get()
+ colors = self['colors']
+ thresholds = self['threshold']
+ color = colors[-1]
+ for index in range(len(colors) - 1):
+ if valueInt <= thresholds[index]:
+ color = colors[index]
+ break
+ self.indicator.configure(background = color)
+ self.value.configure(text = valueStr)
Pmw.forwardmethods(ThresholdScale, tkinter.Scale, 'scale')
-
+
# Initialise tkinter and Pmw.
root = Pmw.initialise()
root.title('Pmw ThresholdScale demonstration')
|