]> SALOME platform Git repositories - tools/eficas.git/blob - Pmw/Pmw_1_2/demos/EntryField.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Pmw / Pmw_1_2 / demos / EntryField.py
1 title = 'Pmw.EntryField demonstration'
2
3 # Import Pmw from this directory tree.
4 import sys
5 sys.path[:0] = ['../../..']
6
7 import time
8 import Tkinter
9 import Pmw
10
11 class Demo:
12     def __init__(self, parent):
13         # Create and pack the EntryFields.
14         self._any = Pmw.EntryField(parent,
15                 labelpos = 'w',
16                 label_text = 'Any:',
17                 validate = None,
18                 command = self.execute)
19         self._real = Pmw.EntryField(parent,
20                 labelpos = 'w',
21                 value = '55.5',
22                 label_text = 'Real (10.0 to 99.0):',
23                 validate = {'validator' : 'real',
24                         'min' : 10, 'max' : 99, 'minstrict' : 0},
25                 modifiedcommand = self.changed)
26         self._odd = Pmw.EntryField(parent,
27                 labelpos = 'w',
28                 label_text = 'Odd length:',
29                 validate = self.custom_validate,
30                 value = 'ABC')
31         self._date = Pmw.EntryField(parent,
32                 labelpos = 'w',
33                 label_text = 'Date (in 2000):',
34                 value = '2000/2/29',
35                 validate = {'validator' : 'date',
36                         'min' : '2000/1/1', 'max' : '2000/12/31',
37                         'minstrict' : 0, 'maxstrict' : 0,
38                         'format' : 'ymd'},
39                 )
40         now = time.localtime(time.time())
41         self._date2 = Pmw.EntryField(parent,
42                 labelpos = 'w',
43                 label_text = 'Date (d.m.y):',
44                 value = '%d.%d.%d' % (now[2], now[1], now[0]),
45                 validate = {'validator' : 'date',
46                         'format' : 'dmy', 'separator' : '.'},
47                 )
48         self._time = Pmw.EntryField(parent,
49                 labelpos = 'w',
50                 label_text = 'Time (24hr clock):',
51                 value = '8:00:00',
52                 validate = {'validator' : 'time',
53                         'min' : '00:00:00', 'max' : '23:59:59',
54                         'minstrict' : 0, 'maxstrict' : 0},
55                 )
56         self._comma = Pmw.EntryField(parent,
57                 labelpos = 'w',
58                 label_text = 'Real (with comma):',
59                 value = '123,456',
60                 validate = {'validator' : 'real', 'separator' : ','},
61                 )
62
63         entries = (self._any, self._real, self._odd, self._date, self._date2,
64                 self._time, self._comma)
65
66         for entry in entries:
67             entry.pack(fill='x', expand=1, padx=10, pady=5)
68         Pmw.alignlabels(entries)
69
70         self._any.component('entry').focus_set()
71
72     def changed(self):
73         print 'Text changed, value is', self._real.getvalue()
74
75     def execute(self):
76         print 'Return pressed, value is', self._any.getvalue()
77
78     # This implements a custom validation routine.  It simply checks
79     # if the string is of odd length.
80     def custom_validate(self, text):
81         print 'text:', text
82         if len(text) % 2 == 0:
83           return -1
84         else:
85           return 1
86
87 ######################################################################
88
89 # Create demo in root window for testing.
90 if __name__ == '__main__':
91     root = Tkinter.Tk()
92     Pmw.initialise(root)
93     root.title(title)
94
95     exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
96     exitButton.pack(side = 'bottom')
97     widget = Demo(root)
98     root.mainloop()