Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Tkinter import *
- import tkMessageBox
- from PIL import Image, ImageTk
- import win32gui
- def center_all_windows():
- def enumHandler(hwnd, lParam):
- desktop = win32gui.GetDesktopWindow()
- dt_l, dt_t, dt_r, dt_b = win32gui.GetWindowRect(desktop)
- l, t, r, b = win32gui.GetWindowRect(hwnd)
- centre_x, centre_y = win32gui.ClientToScreen(desktop, ((dt_r-dt_l)//2, (dt_b-dt_t)//2))
- win32gui.MoveWindow(hwnd, centre_x-(r//2), centre_y-(b//2), r-l, b-t, 0)
- win32gui.EnumWindows(enumHandler, None)
- Center_all_windows()
- class Registration(Label):
- def init(self, root, filename):
- im = Image.open(filename)
- seq = []
- try:
- while 1:
- seq.append(im.copy())
- im.seek(len(seq)) # skip to next frame
- except EOFError:
- pass # we're done
- try:
- self.delay = im.info['duration']
- except KeyError:
- self.delay = 100
- first = seq[0].convert('RGBA')
- self.frames = [ImageTk.PhotoImage(first)]
- Label.init(self, root, image=self.frames[0])
- temp = seq[0]
- for image in seq[1:]:
- temp.paste(image)
- frame = temp.convert('RGBA')
- self.frames.append(ImageTk.PhotoImage(frame))
- self.idx = 0
- self.cancel = self.after(self.delay, self.play)
- self.root = root
- self.root.title('Registration')
- self.root.resizable(0,0)
- self.w = 500
- self.h = 500
- self.ws = self.root.winfo_screenwidth()
- self.hs = self.root.winfo_screenheight()
- self.x = (self.ws/2) - (self.w/2)
- self.y = (self.hs/2) - (self.h/2)
- self.root.geometry('%dx%d+%d+%d' % (self.w, self.h, self.x, self.y))
- self.root.configure(background = 'grey')
- self.image = Image.open('image1.jpg')
- self.photo_image = ImageTk.PhotoImage(self.image)
- self.label = Label(root, image = self.photoimage, bd = 0)
- self.label.pack(side = BOTTOM)
- self.name = Label(root, text = 'NAME', font = ('Times New Roman',
- '8', 'bold'))
- self.name.place(width = 50, height = 20, x = 40, y = 280)
- self.namevariable = StringVar()
- vcmd = (root.register(self.validname), '%d', '%i', '%P', '%s', '%S',
- '%v', '%V', '%W')
- self.user = Entry(root, width = 30, textvariable =
- self.namevariable, validate = "key", validatecommand = vcmd)
- self.user.place(x = 100, y = 280)
- self.age = Label(root, text = 'AGE', font = ('Times New Roman', '8',
- 'bold'))
- self.age.place(width = 50, height = 20, x = 40, y = 320)
- vcmd = (root.register(self.validage), '%d', '%i', '%P', '%s', '%S',
- '%v', '%V', '%W')
- self.userage = Spinbox(root, from= 1, to = 100, justify = CENTER,
- width = 5, validate = "key", validatecommand = vcmd, wrap = True)
- self.userage.place(x = 100, y = 320)
- self.sexvar = IntVar()
- self.sex = Label(root, text = 'SEX', font = ('Times New Roman', '8',
- 'bold'))
- self.sex.place(width = 50, height = 25, x = 40, y = 360)
- self.male = Radiobutton(root, text = 'Male', variable =
- self.sexvar, value = 1)
- self.male.place(x = 100, y = 360)
- self.female = Radiobutton(root, text = 'Female', variable =
- self.sexvar, value = 2)
- self.female.place(x = 165, y = 360)
- self.dob = Label(root, text = 'D.O.B', font = ('Times New Roman',
- '8', 'bold'))
- self.dob.place(width = 50, height = 20, x = 40, y = 400)
- vcmd = (root.register(self.validdays), '%d', '%i', '%P', '%s', '%S',
- '%v', '%V', '%W')
- self.days = Spinbox(root, from = 1, to = 31, justify = CENTER,
- width = 5, wrap = True, validate = 'key', validatecommand = vcmd)
- self.days.place(x = 100, y = 400)
- self.months = Spinbox(root, values = ('Jan', 'Feb', 'Mar', 'Apr',
- 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'), justify = CENTER,
- width = 5,wrap = True, state = 'readonly')
- self.months.place(x = 150, y = 400)
- var = StringVar()
- var.set('2017')
- self.year = Spinbox(root, from = 1970, to = 2050, justify = CENTER,
- width = 5, wrap = True, textvariable = var, state = 'readonly')
- self.year.place(x = 200, y = 400)
- self.username = Label(root, text = 'USERNAME', font = ('Times New
- Roman', '8', 'bold'))
- self.username.place(width = 80, height = 20, x = 40, y = 440)
- self.uservariable = StringVar()
- vcmd = (root.register(self.validusername), '%d', '%i', '%P', '%s',
- '%S', '%v', '%V', '%W')
- self.entry = Entry(root, width = 30, validate = "key",
- validatecommand = vcmd, textvariable = self.uservariable)
- self.entry.place(x = 130, y = 440)
- self.password = Label(root, text = 'PASSWORD', font = ('Times New
- Roman', '8', 'bold'))
- self.password.place(width = 80, height = 20, x = 40, y = 470)
- self.passentry = Entry(root, width = 30, show = '*')
- self.passentry.place(x = 130, y = 470)
- self.register = Button(root, font = ('NeuropolXRg-Regular', '8'),
- text = 'REGISTER', activebackground = 'grey', activeforeground = 'white',
- command = self.registration)
- self.register.pack()
- self.register.place(height = 50, width = 100, x = 390, y = 440)
- def validname(self, d, i, P, s, S, v, V, W):
- if S in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ':
- return True
- else:
- self.bell()
- return False
- def validage(self, d, i, P, s, S, v, V, W):
- if P in str(range(1, 101)):
- return True
- else:
- self.bell()
- return False
- def validdays(self, d, i, P, s, S, v, V, W):
- if P in str(range(1, 32)):
- return True
- else:
- self.bell()
- return False
- def validusername(self, d, i, P, s, S, v, V, W):
- if S in 'abcdefghijklmnopqrstuvwxyz1234567890':
- return True
- else:
- return False
- def play(self):
- self.config(image=self.frames[self.idx])
- self.idx += 1
- if self.idx == len(self.frames):
- self.idx = 0
- self.cancel = self.after(self.delay, self.play)
- def registration(self):
- if not ' ' in self.namevariable.get():
- tkMessageBox.showerror('ERROR', 'Full name is required')
- else:
- root.destroy()
- print 'hello'
- raw_input()
- root = Tk()
- anim = Registration(root, 'tuhin.gif')
- anim.pack()
- root.mainloop()
Add Comment
Please, Sign In to add comment