Advertisement
Guest User

Untitled

a guest
Jul 8th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. import logging
  2. import PIL.Image
  3. import PIL.ImageTk
  4. from tkinter import *
  5.  
  6. loginLog = logging.getLogger(__name__)
  7.  
  8.  
  9. class login:
  10. def reposition(self, event):
  11. loginLog.debug("Running reposition")
  12. self.frame.place_configure(x=int(self.window.winfo_width() / 3), y=self.window.winfo_height() / 3,
  13. width=int(int(self.window.winfo_width()) / 3),
  14. height=int(int(self.window.winfo_height()) / 3))
  15. try:
  16. self.canvas.delete("Background")
  17. background_image_resized = self.bg_image.resize((250, 250), PIL.Image.ANTIALIAS)
  18. self.canvas.create_image(0, 0, image=background_image_resized, anchor=NW, tag="Background")
  19. except Exception as e:
  20. loginLog.error(str(e))
  21.  
  22. def callback(self, event):
  23. loginLog.debug("Running callback")
  24. self.username = self.user.get()
  25.  
  26. try:
  27. self.file = open(self.userDirs + self.username.lower() + ".profile", "r")
  28. self.file.close()
  29. except:
  30. self.message.configure(text="Err: Username or password is incorrect!")
  31.  
  32. self.file = open(self.userDirs + self.username.lower() + ".profile", "r")
  33.  
  34. self.line = self.file.readlines()
  35.  
  36. self.password = self.passw.get()
  37. if self.username == self.line[1].strip() and self.password == self.line[2].strip():
  38. self.message.configure(text="Logged in.")
  39. self.active = self.username
  40. self.tmp = open("active", "w")
  41. self.tmp.write(self.active)
  42. self.window.destroy()
  43. # user_dir = line[4]
  44. else:
  45. self.message.configure(text="Err: Username and password don't match the profile")
  46.  
  47. def createWidgets(self):
  48. loginLog.debug("Running createWidgets")
  49. self.titleLabel = Label(self.frame, text="Login to " + self.windowTitle + "\n", bg=self.bgColour)
  50. self.usertitle = Label(self.frame, text="---Username---", bg=self.bgColour)
  51. self.passtitle = Label(self.frame, text="---Password---", bg=self.bgColour)
  52. self.message = Label(self.frame, bg=self.bgColour)
  53. self.user = Entry(self.frame)
  54. self.passw = Entry(self.frame, show="*")
  55. self.go = Button(self.frame, text="Log in!", bg="#00FF00")
  56.  
  57. self.titleLabel.pack()
  58. self.usertitle.pack()
  59. self.user.pack()
  60. self.passtitle.pack()
  61. self.passw.pack()
  62. self.go.pack()
  63. self.message.pack()
  64.  
  65. self.user.focus()
  66.  
  67. self.go.bind("<Button-1>", self.callback)
  68. self.go.bind("<Return>", self.callback)
  69. self.passw.bind("<Return>", self.callback)
  70. self.window.bind("<Configure>", self.reposition)
  71.  
  72. self.window.mainloop()
  73.  
  74. def createColour(self):
  75. loginLog.debug("Running createColour")
  76. try:
  77. self.window.configure(bg=self.bgColour)
  78. except:
  79. pass
  80.  
  81. def createIcon(self):
  82. loginLog.debug("Running createIcon")
  83. try:
  84. self.window.wm_iconbitmap(self.icon)
  85. except:
  86. pass
  87.  
  88. def createBackground(self):
  89. loginLog.debug("Running createBackground")
  90. try:
  91. self.bg_image = PIL.Image.open(self.bg, "r")
  92. self.background_image = PhotoImage(self.bg_image)
  93. self.canvas.create_image(0, 0, image=self.background_image, anchor=NW, tag="Background")
  94. self.canvas.configure(highlightthickness=0, relief=FLAT)
  95. self.canvas.pack(expand=YES, fill=BOTH)
  96. except Exception as e:
  97. loginLog.error(str(e))
  98.  
  99. def fullScreen(self, event):
  100. loginLog.debug("Running fullscreen")
  101. if self.max == 0:
  102. self.window.attributes('-fullscreen', True)
  103. self.max = 1
  104. else:
  105. self.window.attributes('-fullscreen', False)
  106. self.max = 0
  107.  
  108. def createWindow(self):
  109. loginLog.debug("Running createWindow")
  110. self.window = Tk()
  111. self.window.title(self.windowTitle)
  112. self.window.geometry(self.widthHeight)
  113. self.canvas = Canvas(self.window, width=self.bgWidth, height=self.bgHeight)
  114. self.frame = Frame(self.canvas)
  115. self.frame.configure(bg=self.bgColour)
  116.  
  117. self.canvas.pack()
  118.  
  119. self.window.attributes('-fullscreen', True)
  120. self.max = 1
  121. self.window.bind("<Escape>", self.fullScreen)
  122.  
  123. def __init__(self, windowTitle="Login Window", widthHeight="1920x1080", icon="", bgColour=None, bg=None,
  124. bgWidth="350", bgHeight="250",
  125. userDirs=""):
  126. loginLog.debug("Running __init__")
  127. self.windowTitle = windowTitle
  128. self.widthHeight = widthHeight
  129. self.icon = icon
  130. self.bgColour = bgColour
  131. self.bg = bg
  132. self.bgWidth = bgWidth
  133. self.bgHeight = bgHeight
  134. self.userDirs = userDirs
  135. self.username = ""
  136. self.active = ""
  137.  
  138. self.createWindow()
  139. self.createBackground()
  140. self.createIcon()
  141. self.createWidgets()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement