title
= 'Subclassing Pmw.Counter'
# Import Pmw from this directory tree.
sys
.path
[:0] = ['../../..']
class LabeledDateCounter(Pmw
.Counter
):
def __init__(self
, parent
=None , **kw
):
# Need to use long ints here because on the Macintosh the maximum size
# of an integer is smaller than the value returned by time.time().
now
= (long(time
.time()) / 300) * 300
text
= time
.strftime('%y/%m/%d', time
.localtime(now
))
kw
['entryfield_validate'] = 'date'
kw
['entryfield_value'] = text
apply(Pmw
.Counter
.__init
__, (self
, parent
), kw
)
class LabeledRealCounter(Pmw
.Counter
):
def __init__(self
, parent
=None , **kw
):
# Define the validate option dictionary.
validate
= {'validator' : 'real', 'min' : 0.0, 'max' : 100.0}
kw
['entryfield_validate'] = validate
kw
['entryfield_value'] = 50.0
apply(Pmw
.Counter
.__init
__, (self
, parent
), kw
)
def __init__(self
, parent
):
# Create and pack some LabeledDateCounters and LabeledRealCounter.
self
._date
1 = LabeledDateCounter(parent
, label_text
= 'Date:')
self
._date
2 = LabeledDateCounter(parent
, label_text
= 'Another Date:')
self
._real
1 = LabeledRealCounter(parent
, label_text
= 'Real:')
self
._real
2 = LabeledRealCounter(parent
, label_text
= 'Another Real:')
counters
= (self
._date
1, self
._date
2, self
._real
1, self
._real
2)
counter
.pack(fill
='x', expand
=1, padx
=10, pady
=5)
Pmw
.alignlabels(counters
)
######################################################################
# Create demo in root window for testing.
if __name__
== '__main__':
exitButton
= Tkinter
.Button(root
, text
= 'Exit', command
= root
.destroy
)
exitButton
.pack(side
= 'bottom')