# MCS 260 Review 2 Mon 12 Nov 2007 : guipin.py # # We use four scales to enter a PIN number. from Tkinter import * class GuiPin(): """ Four scales to enter a 4-digit number. """ def __init__(self,wdw): "defines layout of the GUI" wdw.title('PIN slider') self.d0 = IntVar() self.d1 = IntVar() self.d2 = IntVar() self.d3 = IntVar() self.s0 = Scale(wdw,\ orient='vertical',\ from_=0,to=9,resolution=1,\ variable=self.d0,command=self.ShowPin) self.s1 = Scale(wdw,\ orient='vertical',\ from_=0,to=9,resolution=1,\ variable=self.d1,command=self.ShowPin) self.s2 = Scale(wdw,\ orient='vertical',\ from_=0,to=9,resolution=1,\ variable=self.d2,command=self.ShowPin) self.s3 = Scale(wdw,\ orient='vertical',\ from_=0,to=9,resolution=1,\ variable=self.d3,command=self.ShowPin) self.s3.grid(row=0,column=0) self.s2.grid(row=0,column=1) self.s1.grid(row=0,column=2) self.s0.grid(row=0,column=3) self.e = Entry(wdw) self.e.grid(row=1,columnspan=4,sticky=W+E) def ShowPin(self,v): "puts the PIN in the entry widget" n0 = self.d0.get() n1 = self.d1.get() n2 = self.d2.get() n3 = self.d3.get() n = n0 + 10*(n1 + 10*(n2 + 10*n3)) sn = '%04d' % n self.e.delete(0,END) self.e.insert(INSERT,sn) def main(): top = Tk() show = GuiPin(top) top.mainloop() if __name__ == "__main__": main()