#Pmw copyright
#Copyright 1997-1999 Telstra Corporation Limited, Australia #Copyright 2000-2002 Really Good Software Pty Ltd, Australia
#Permission is hereby granted, free of charge, to any person obtaining a copy #of this software and associated documentation files (the "Software"), to deal #in the Software without restriction, including without limitation the rights #to use, copy, modify, merge, publish, distribute, sublicense, and/or sell #copies of the Software, and to permit persons to whom the Software is furnished #to do so, subject to the following conditions:
#The above copyright notice and this permission notice shall be included in all #copies or substantial portions of the Software.
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, #INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A #PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT #HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION #OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE #SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import string from Tkinter import * from tkMessageBox import * import string
def validIP(value): valid = 0 try: if len(value) >=7 and len(value) <= 15: fields = string.splitfields(value, '.') if len(fields) < 5: for field in fields: iV = string.atoi(field) if iV < 0 or iV > 255: valid = 0 break else: valid = 1 except: pass if not valid: showerror(title='Invalid IP Address', message='Format: nnn.nnn.nnn.nnnn-1 < nnn < 256') return (value, 0, valid)
def validCP(value): valid = 0 try: fields = string.splitfields(value, '-') for field in fields: iV = string.atoi(field) if iV < 1 or iV > 100: valid = 0 break else: valid = 1 except: pass if not valid: showerror(title='Invalid Card-Port', message='Format: nnn-nnnn0 < nnn < 101'), return (value, 0, valid)
def validLName(value): valid = 0 try: if len(value) >= 3: ucFTC = string.upper(value[:2]) if ucFTC == 'CP': valid = 1 except: pass if valid: retval = 'CP' + value[2:] replace = 1 else: showerror(title='Invalid Logical Name', message='Format: CP+<text>') retval = value replace = 0 return (retval, replace, valid)
class EntryFormatting: def __init__(self, master): frame = Frame(master) Label(frame, text=' ').grid(row=0, column=0,sticky=W) Label(frame, text=' ').grid(row=0, column=3,sticky=W)
self._ipaddr = self.createField(frame, width=16, row=0, col=2, label='Phone Number:n(nnn)-nnn-nnn', format=self.fmtPhone, enter=self.activate)
frame.pack(side=TOP, padx=15, pady=15) def createField(self, master, label='', text='', width=1, format=None, enter=None, row=0, col=0): Label(master, text=label).grid(row=row, column=col-1, padx=15, sticky=W) id = Entry(master, text=text, width=width, takefocus=1) id.bind('<KeyRelease>', format) id.bind('<Return>', enter) id.grid(row=row, column=col, pady=10, sticky=W) return id def activate(self, event): print '<Return>: value is', event.widget.get()
def fmtPhone(self, event): current = event.widget.get() if len(current) == 1: if event.char in '0123456789': current = '1-(%s' % current else: event.widget.bell() current = '' elif len(current) == 6: current = '%s)-' % current elif len(current) == 11: current = '%s-' % current event.widget.delete(0, END) event.widget.insert(0, current)
def fmtSSN(self, event): current = event.widget.get() if len(current) in [3, 6]: current = '%s-' % current event.widget.delete(0, END) event.widget.insert(0, current)
######################################################################
root = Tk() root.option_add('*Font', 'Verdana 10 bold') root.option_add('*Entry.Font', 'Courier 10') root.title('Entry Formatting')
top = EntryFormatting(root) quit = Button(root, text='Quit', command=root.destroy) quit.pack(side = 'bottom') root.mainloop()
|