Advertisement
Guest User

Untitled

a guest
Oct 26th, 2018
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.58 KB | None | 0 0
  1. from tkinter import *
  2. from tkinter import ttk
  3. import tkinter as tk
  4. from tkinter.messagebox import showinfo
  5. import tkinter.simpledialog
  6. import tkinter.messagebox
  7.  
  8. class Game:
  9. def __init__(self, name, rating, price, publisher, sale):
  10. self.name = name
  11. self.rating = rating
  12. self.price = price
  13. self.publisher = publisher
  14. self.sale = sale #will be used a mutliplier e.g. 0.6 x price, 1 x price (default)
  15. gameList.append(Game)
  16.  
  17. class User:
  18. def __init__(self, username, password, balance, library):
  19. self.username = username
  20. self.password = password
  21. self.balance = balance
  22. self.library = library #this will be an array which will be added via, gta.name etc
  23. userList.append(User)
  24.  
  25. class Buying:
  26. def buyfunc(*args): #REPEATED CODE IS NEEDED for some of the part,
  27. buywindow = Toplevel(root)
  28. buywindow.title("buy a game")
  29. buywindow.geometry('{}x{}'.format(500, 530))
  30. buywindow.resizable(0,0)
  31. buywindow.grab_set()#made it unclickable
  32. #########################
  33. labelCom = Label(buywindow, text="Purchase", font=("arial", 24), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)
  34. labelCom = Label(buywindow, text="game avaliable", font=("arial", 18)).grid(row=1, column=0, sticky=N, padx=6, pady=6)
  35. labelCom = Label(buywindow, text="how many copies", font=("arial", 18)).grid(row=2, column=0, sticky=N, padx=6, pady=6)
  36. #########################
  37. copiesEntry = StringVar()
  38. copiesEntrytext = Entry(buywindow, textvariable=copiesEntry, state='normal')
  39. #copiesEntry.trace("w", lambda name, index, mode, copiesEntry=copiesEntry: test1(copiesEntry))
  40. copiesEntrytext.grid(row=2, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
  41. #messagebox.showinfo("welcome", "buy some shit") #stops interaction with the back ground owo test only
  42. #body.pack(padx=5, pady=5)
  43.  
  44. def test1(*args):
  45. print(copiesEntrytext.get())
  46. copiesEntry.set("")
  47. print("worked")
  48.  
  49. #class logining:
  50.  
  51.  
  52. def test(*args): #*args is very important
  53. print(username1, password1)
  54. if username1 == username and password1 == password:
  55. print("it worked")
  56. else:
  57. print("failed")
  58. return
  59.  
  60.  
  61.  
  62. def loginfunc(*args):
  63. global username1, password1
  64.  
  65. loginwindow = Toplevel(root)
  66. loginwindow.title("Login")
  67. loginwindow.geometry('{}x{}'.format(400, 200))
  68. loginwindow.resizable(0,0)
  69. loginwindow.grab_set()#made it unclickable
  70.  
  71. ############################################
  72. labelCom = Label(loginwindow, text="login", font=("arial", 24), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)#login window is 1 frame
  73. labelCom = Label(loginwindow, text="username", font=("arial", 18)).grid(row=1, column=0, sticky=N, padx=6, pady=6)
  74. labelCom = Label(loginwindow, text="password", font=("arial", 18)).grid(row=2, column=0, sticky=N, padx=6, pady=6)
  75. ############################################
  76. usernameEntry = StringVar()
  77. #usernameEntry.trace("w", test)
  78. usernameEntrytext = Entry(loginwindow, textvariable="", state='normal')
  79. usernameEntrytext.grid(row=1, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
  80. ############################################
  81. passwordEntry = StringVar()
  82. #passwordEntry.trace("w", test)#make sure to add stake holder on the hide password
  83. passwordEntrytext = Entry(loginwindow, show="*", textvariable="", state='normal')#password thingy
  84. passwordEntrytext.grid(row=2, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
  85. ############################################
  86. #login button
  87. un = usernameEntry.get()
  88. pw = passwordEntry.get()
  89. signinButton = Button(loginwindow, text="login", command=test, state="normal")#changing test() to test make it so that a button is needed,
  90. signinButton.grid(row=3, column=1)
  91.  
  92. def logoutfunc(*args):
  93. '''logoutwindow = Toplevel(root)
  94. logoutwindow.title("Logout")
  95. logoutwindow.geometry('{}x{}'.format(400, 300))
  96. logoutwindow.resizable(0,0)
  97. logoutwindow.grab_set()#made it unclickable'''
  98. #to logout don't need anything
  99. '''
  100. def buyfunc(*args): #REPEATED CODE IS NEEDED for some of the part,
  101. buywindow = Toplevel(root)
  102. buywindow.title("buy a game")
  103. buywindow.geometry('{}x{}'.format(500, 530))
  104. buywindow.resizable(0,0)
  105. buywindow.grab_set()#made it unclickable
  106. #
  107. labelCom = Label(buywindow, text="Purchase", font=("arial", 24), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)
  108. labelCom = Label(buywindow, text="game avaliable", font=("arial", 18)).grid(row=1, column=0, sticky=N, padx=6, pady=6)
  109. labelCom = Label(buywindow, text="how many copies", font=("arial", 18)).grid(row=2, column=0, sticky=N, padx=6, pady=6)
  110. #
  111. copiesEntry = StringVar()
  112. copiesEntrytext = Entry(buywindow, textvariable=copiesEntry, state='normal')
  113. copiesEntry.trace("w", lambda name, index, mode, copiesEntry=copiesEntry: test1(copiesEntry))
  114. copiesEntrytext.grid(row=2, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
  115. #messagebox.showinfo("welcome", "buy some shit") #stops interaction with the back ground owo test only
  116. #body.pack(padx=5, pady=5)
  117. '''
  118. def salesfunc(*args):
  119. saleswindow = Toplevel(root)
  120. saleswindow.title("Sales!")
  121. saleswindow.geometry('{}x{}'.format(400, 300))
  122. saleswindow.resizable(0,0)
  123. saleswindow.grab_set()#made it unclickable
  124.  
  125. def usersetfunc(*args):
  126. usersetwindow = Toplevel(root)
  127. usersetwindow.title("User Setting")
  128. usersetwindow.geometry('{}x{}'.format(400, 300))
  129. usersetwindow.resizable(0,0)
  130. usersetwindow.grab_set()#made it unclickable
  131. '''
  132.  
  133. https://www.lynda.com/portal/sip?org=wcl.govt.nz&triedlogout=true
  134.  
  135. https://www.lynda.com/Tkinter-tutorials/Creating-additional-top-level-windows/163607/184107-4.html?srchtrk=index%3a2%0alinktypeid%3a2%0aq%3apython+gui%0apage%3a1%0as%3arelevance%0asa%3atrue%0aproducttypeid%3a2
  136. '''
  137.  
  138. #interface code it's pretty aesthetic i know
  139. root = Tk()
  140. root.title('Steam Backup Launcher')
  141. root.resizable(0,0)
  142. root.geometry('{}x{}'.format(430, 375))
  143. root.configure(background="black")
  144. mainFrame = Frame(root)
  145. BotFrame = Frame(root)
  146.  
  147.  
  148. gameNames = []
  149. gameList = []
  150. userList = []
  151.  
  152. GTA4 = Game("grand theft auto 4", "3/5", 45, "rockstar", 1) #name, stock, price, publisher
  153. destiny = Game("destiny", "4/5", 45, "bungie", 1) #name, stock, price, publisher
  154. overwatch = Game("overwatch", "4/5", 60, "blizzard", 1) #name, stock, price, publisher
  155. jamie = User("joji", "2low4ahoe", 244, [GTA4.name, destiny.name, overwatch.name])#game library working!
  156. #globals
  157. username1 = ""
  158. password1 = ""
  159. username = "test"
  160. password = "test" #testing names
  161.  
  162. print(GTA4.name + GTA4.rating)
  163. print(jamie.username + " " + str(jamie.library))
  164.  
  165. #title
  166. labelCom = Label(mainFrame, text="steam", font=("arial", 34), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)
  167.  
  168. #buy pop up box i want to make a list of avaliable game where they can be displayed
  169. buyButton = Button(mainFrame, text="Buy", command=Buying.buyfunc)
  170. buyButton.grid(row=1, column=0, ipadx=10, ipady=5, padx=10)
  171.  
  172. #login button
  173. loginButton = Button(mainFrame, text="Login", command=loginfunc)
  174. loginButton.grid(row=1, column=2, ipadx=10, ipady=5, padx=10)
  175.  
  176. #logout pop up box i want to make a list of avaliable game where they can be displayed
  177. logoutButton = Button(BotFrame, text="Logout", command=logoutfunc)
  178. logoutButton.grid(row=3, column=2, ipadx=10, ipady=5, padx=10)
  179.  
  180. #sales pop up box i want to make a list of games of sale
  181. salesButton = Button(BotFrame, text="Sales!", command=salesfunc)
  182. salesButton.grid(row=3, column=0, ipadx=10, ipady=5, padx=10)
  183.  
  184. #settings pop up box i want to make a list of games of sale
  185. usersetButton = Button(BotFrame, text="user setting", command=usersetfunc)
  186. usersetButton.grid(row=2, column=1, ipadx=10, ipady=5, padx=10)
  187.  
  188. #library
  189. sell_comic_menu= StringVar()
  190. sell_comic_menu.set("this is your library")
  191. sell_comic_menuoption = OptionMenu(mainFrame, sell_comic_menu, *jamie.library).grid(row=2, column=1, sticky=N, padx=6)
  192. # i just need to make a button to send it info in since it activates the funciton when a new product is selected (sell button)
  193.  
  194. ''' #concept idea first might remove later
  195. #notification box
  196. LabelNotification = Label(mainFrame, text="notifications", font=("arial", 16), background="#999", width=10).grid(row=1, column=2, sticky=N, padx=3, pady=3)
  197.  
  198. #notification content update with notify_1-4
  199. spaceNotString = StringVar()
  200. spaceNotString.set("")
  201. LabelNotContent = Label(mainFrame, textvariable=spaceNotString, width=20, font=("arial",10))
  202. LabelNotContent.grid(row=2, column=2, sticky=N)
  203.  
  204.  
  205. #display board content
  206. displayBoardString = StringVar()
  207. displayBoardString.set("")
  208. LabeldisplayBoardContent = Label(mainFrame, textvariable=displayBoardString, width=25, height=5, font=("arial",12))
  209. LabeldisplayBoardContent.grid(row=2, column=1, sticky=N, rowspan=2,padx=6)
  210. '''
  211. #balance display
  212. LabelbalanceTitle = Label(BotFrame, text=("your current balance is $" +str(jamie.balance)), font=("arial", 9), background="#999", width=30).grid(row=3, column=1, sticky=N, padx=20, pady=3)
  213.  
  214. #main frame
  215. mainFrame.pack(side=TOP, fill=BOTH, expand=TRUE)
  216. BotFrame.pack(side=BOTTOM, fill=BOTH, expand=TRUE)
  217. #root.bind("<space>", clear)
  218.  
  219. #displaymoney()
  220. root.mainloop()
  221. #all prints are for testing purposes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement