Guest User

regis.py

a guest
Apr 16th, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.84 KB | None | 0 0
  1. from Tkinter import *
  2. import tkMessageBox
  3. from PIL import Image, ImageTk
  4.  
  5. import win32gui
  6.  
  7. def center_all_windows():
  8.     def enumHandler(hwnd, lParam):
  9.         desktop = win32gui.GetDesktopWindow()
  10.         dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop)
  11.         l, t, r, b = win32gui.GetWindowRect(hwnd)
  12.         centre_x, centre_y = win32gui.ClientToScreen(desktop, ((dt_r-dt_l)//2, (dt_b-dt_t)//2))
  13.         win32gui.MoveWindow(hwnd, centre_x-(r//2), centre_y-(b//2), r-l, b-t, 0)
  14.  
  15.     win32gui.EnumWindows(enumHandler, None)
  16.  
  17. Center_all_windows()
  18.  
  19. class Registration(Label):
  20.     def init(self, root, filename):
  21.         im = Image.open(filename)
  22.         seq =  []
  23.         try:
  24.             while 1:
  25.                 seq.append(im.copy())
  26.                 im.seek(len(seq)) # skip to next frame
  27.         except EOFError:
  28.             pass # we're done
  29.  
  30.         try:
  31.             self.delay = im.info['duration']
  32.         except KeyError:
  33.             self.delay = 100
  34.  
  35.         first = seq[0].convert('RGBA')
  36.         self.frames = [ImageTk.PhotoImage(first)]
  37.         Label.init(self, root, image=self.frames[0])
  38.  
  39.         temp = seq[0]
  40.  
  41.         for image in seq[1:]:
  42.             temp.paste(image)
  43.             frame = temp.convert('RGBA')
  44.             self.frames.append(ImageTk.PhotoImage(frame))
  45.  
  46.         self.idx = 0
  47.  
  48.         self.cancel = self.after(self.delay, self.play)
  49.  
  50.         self.root = root
  51.  
  52.         self.root.title('Registration')
  53.         self.root.resizable(0,0)
  54.         self.w = 500
  55.         self.h = 500
  56.         self.ws = self.root.winfo_screenwidth()
  57.         self.hs = self.root.winfo_screenheight()
  58.         self.x = (self.ws/2) - (self.w/2)
  59.         self.y = (self.hs/2) - (self.h/2)
  60.         self.root.geometry('%dx%d+%d+%d' % (self.w, self.h, self.x, self.y))
  61.         self.root.configure(background = 'grey')
  62.         self.image = Image.open('image1.jpg')
  63.         self.photo_image = ImageTk.PhotoImage(self.image)
  64.         self.label = Label(root, image = self.photoimage, bd = 0)
  65.         self.label.pack(side = BOTTOM)
  66.  
  67.         self.name = Label(root, text = 'NAME', font = ('Times New Roman',
  68.             '8', 'bold'))
  69.         self.name.place(width = 50, height = 20, x = 40, y = 280)
  70.         self.namevariable = StringVar()
  71.         vcmd = (root.register(self.validname), '%d', '%i', '%P', '%s', '%S',
  72.             '%v', '%V', '%W')
  73.         self.user = Entry(root, width = 30, textvariable =
  74.             self.namevariable, validate = "key", validatecommand = vcmd)
  75.         self.user.place(x = 100, y = 280)
  76.  
  77.         self.age = Label(root, text = 'AGE', font = ('Times New Roman', '8',
  78.             'bold'))
  79.         self.age.place(width = 50, height = 20, x = 40, y = 320)
  80.         vcmd = (root.register(self.validage), '%d', '%i', '%P', '%s', '%S',
  81.             '%v', '%V', '%W')
  82.         self.userage = Spinbox(root, from= 1, to = 100, justify = CENTER,
  83.             width = 5, validate = "key", validatecommand = vcmd, wrap = True)
  84.         self.userage.place(x = 100, y = 320)
  85.  
  86.         self.sexvar = IntVar()
  87.         self.sex = Label(root, text = 'SEX', font = ('Times New Roman', '8',
  88.             'bold'))
  89.         self.sex.place(width = 50, height = 25, x = 40, y = 360)
  90.         self.male = Radiobutton(root, text = 'Male',  variable =
  91.             self.sexvar, value = 1)
  92.         self.male.place(x = 100, y = 360)
  93.         self.female = Radiobutton(root, text = 'Female', variable =
  94.             self.sexvar,  value = 2)
  95.         self.female.place(x = 165, y = 360)
  96.  
  97.         self.dob = Label(root, text = 'D.O.B', font = ('Times New Roman',
  98.             '8', 'bold'))
  99.         self.dob.place(width = 50, height = 20, x = 40, y = 400)
  100.         vcmd = (root.register(self.validdays), '%d', '%i', '%P', '%s', '%S',
  101.             '%v', '%V', '%W')
  102.         self.days = Spinbox(root, from = 1, to = 31, justify = CENTER,
  103.             width = 5, wrap = True, validate = 'key', validatecommand = vcmd)
  104.         self.days.place(x = 100, y = 400)
  105.         self.months = Spinbox(root, values = ('Jan', 'Feb', 'Mar', 'Apr',
  106.             'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'), justify = CENTER,
  107.             width = 5,wrap = True, state = 'readonly')
  108.         self.months.place(x = 150, y = 400)
  109.         var = StringVar()
  110.         var.set('2017')
  111.         self.year = Spinbox(root, from = 1970, to = 2050, justify = CENTER,
  112.             width = 5, wrap = True, textvariable = var, state = 'readonly')
  113.         self.year.place(x = 200, y = 400)
  114.         self.username = Label(root, text = 'USERNAME', font = ('Times New
  115.            Roman', '8', 'bold'))
  116.         self.username.place(width = 80, height = 20, x = 40, y = 440)
  117.         self.uservariable = StringVar()
  118.         vcmd = (root.register(self.validusername), '%d', '%i', '%P', '%s',
  119.             '%S', '%v', '%V', '%W')
  120.         self.entry = Entry(root, width = 30, validate = "key",
  121.             validatecommand = vcmd, textvariable = self.uservariable)
  122.         self.entry.place(x = 130, y = 440)
  123.         self.password = Label(root, text = 'PASSWORD', font = ('Times New
  124.            Roman', '8', 'bold'))
  125.         self.password.place(width = 80, height = 20, x = 40, y = 470)
  126.         self.passentry = Entry(root, width = 30, show = '*')
  127.         self.passentry.place(x = 130, y = 470)
  128.         self.register = Button(root, font = ('NeuropolXRg-Regular', '8'),
  129.             text = 'REGISTER', activebackground = 'grey', activeforeground = 'white',
  130.             command = self.registration)
  131.         self.register.pack()
  132.         self.register.place(height = 50, width = 100, x = 390, y = 440)
  133.  
  134.     def validname(self, d, i, P, s, S, v, V, W):
  135.         if S in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ':
  136.             return True
  137.         else:
  138.             self.bell()
  139.             return False
  140.  
  141.     def validage(self, d, i, P, s, S, v, V, W):
  142.         if P in str(range(1, 101)):
  143.             return True
  144.         else:
  145.             self.bell()
  146.             return False
  147.  
  148.     def validdays(self, d, i, P, s, S, v, V, W):
  149.         if P in str(range(1, 32)):
  150.             return True
  151.         else:
  152.             self.bell()
  153.             return False
  154.  
  155.     def validusername(self, d, i, P, s, S, v, V, W):
  156.         if S in 'abcdefghijklmnopqrstuvwxyz1234567890':
  157.             return True
  158.         else:
  159.             return False
  160.  
  161.     def play(self):
  162.         self.config(image=self.frames[self.idx])
  163.         self.idx += 1
  164.         if self.idx == len(self.frames):
  165.             self.idx = 0
  166.         self.cancel = self.after(self.delay, self.play)
  167.  
  168.     def registration(self):
  169.         if not ' ' in self.namevariable.get():
  170.             tkMessageBox.showerror('ERROR', 'Full name is required')
  171.         else:
  172.             root.destroy()
  173.             print 'hello'
  174.  
  175.             raw_input()
  176.  
  177.  
  178.  
  179.  
  180. root = Tk()
  181. anim = Registration(root, 'tuhin.gif')
  182. anim.pack()
  183.  
  184. root.mainloop()
Add Comment
Please, Sign In to add comment