Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import ttk
- import tkinter as tk
- from tkinter.messagebox import showinfo
- import tkinter.simpledialog
- import tkinter.messagebox
- class Game:
- def __init__(self, name, rating, price, publisher, sale):
- self.name = name
- self.rating = rating
- self.price = price
- self.publisher = publisher
- self.sale = sale #will be used a mutliplier e.g. 0.6 x price, 1 x price (default)
- gameList.append(Game)
- class User:
- def __init__(self, username, password, balance, library):
- self.username = username
- self.password = password
- self.balance = balance
- self.library = library #this will be an array which will be added via, gta.name etc
- userList.append(User)
- class Buying:
- def buyfunc(*args): #REPEATED CODE IS NEEDED for some of the part,
- buywindow = Toplevel(root)
- buywindow.title("buy a game")
- buywindow.geometry('{}x{}'.format(500, 530))
- buywindow.resizable(0,0)
- buywindow.grab_set()#made it unclickable
- #########################
- labelCom = Label(buywindow, text="Purchase", font=("arial", 24), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)
- labelCom = Label(buywindow, text="game avaliable", font=("arial", 18)).grid(row=1, column=0, sticky=N, padx=6, pady=6)
- labelCom = Label(buywindow, text="how many copies", font=("arial", 18)).grid(row=2, column=0, sticky=N, padx=6, pady=6)
- #########################
- copiesEntry = StringVar()
- copiesEntrytext = Entry(buywindow, textvariable=copiesEntry, state='normal')
- #copiesEntry.trace("w", lambda name, index, mode, copiesEntry=copiesEntry: test1(copiesEntry))
- copiesEntrytext.grid(row=2, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
- #messagebox.showinfo("welcome", "buy some shit") #stops interaction with the back ground owo test only
- #body.pack(padx=5, pady=5)
- def test1(*args):
- print(copiesEntrytext.get())
- copiesEntry.set("")
- print("worked")
- #class logining:
- def test(*args): #*args is very important
- print(username1, password1)
- if username1 == username and password1 == password:
- print("it worked")
- else:
- print("failed")
- return
- def loginfunc(*args):
- global username1, password1
- loginwindow = Toplevel(root)
- loginwindow.title("Login")
- loginwindow.geometry('{}x{}'.format(400, 200))
- loginwindow.resizable(0,0)
- loginwindow.grab_set()#made it unclickable
- ############################################
- 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
- labelCom = Label(loginwindow, text="username", font=("arial", 18)).grid(row=1, column=0, sticky=N, padx=6, pady=6)
- labelCom = Label(loginwindow, text="password", font=("arial", 18)).grid(row=2, column=0, sticky=N, padx=6, pady=6)
- ############################################
- usernameEntry = StringVar()
- #usernameEntry.trace("w", test)
- usernameEntrytext = Entry(loginwindow, textvariable="", state='normal')
- usernameEntrytext.grid(row=1, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
- ############################################
- passwordEntry = StringVar()
- #passwordEntry.trace("w", test)#make sure to add stake holder on the hide password
- passwordEntrytext = Entry(loginwindow, show="*", textvariable="", state='normal')#password thingy
- passwordEntrytext.grid(row=2, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
- ############################################
- #login button
- un = usernameEntry.get()
- pw = passwordEntry.get()
- signinButton = Button(loginwindow, text="login", command=test, state="normal")#changing test() to test make it so that a button is needed,
- signinButton.grid(row=3, column=1)
- def logoutfunc(*args):
- '''logoutwindow = Toplevel(root)
- logoutwindow.title("Logout")
- logoutwindow.geometry('{}x{}'.format(400, 300))
- logoutwindow.resizable(0,0)
- logoutwindow.grab_set()#made it unclickable'''
- #to logout don't need anything
- '''
- def buyfunc(*args): #REPEATED CODE IS NEEDED for some of the part,
- buywindow = Toplevel(root)
- buywindow.title("buy a game")
- buywindow.geometry('{}x{}'.format(500, 530))
- buywindow.resizable(0,0)
- buywindow.grab_set()#made it unclickable
- #
- labelCom = Label(buywindow, text="Purchase", font=("arial", 24), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)
- labelCom = Label(buywindow, text="game avaliable", font=("arial", 18)).grid(row=1, column=0, sticky=N, padx=6, pady=6)
- labelCom = Label(buywindow, text="how many copies", font=("arial", 18)).grid(row=2, column=0, sticky=N, padx=6, pady=6)
- #
- copiesEntry = StringVar()
- copiesEntrytext = Entry(buywindow, textvariable=copiesEntry, state='normal')
- copiesEntry.trace("w", lambda name, index, mode, copiesEntry=copiesEntry: test1(copiesEntry))
- copiesEntrytext.grid(row=2, column=1, padx=6, pady=6, ipadx=15, ipady=8, rowspan=1, sticky="ew")
- #messagebox.showinfo("welcome", "buy some shit") #stops interaction with the back ground owo test only
- #body.pack(padx=5, pady=5)
- '''
- def salesfunc(*args):
- saleswindow = Toplevel(root)
- saleswindow.title("Sales!")
- saleswindow.geometry('{}x{}'.format(400, 300))
- saleswindow.resizable(0,0)
- saleswindow.grab_set()#made it unclickable
- def usersetfunc(*args):
- usersetwindow = Toplevel(root)
- usersetwindow.title("User Setting")
- usersetwindow.geometry('{}x{}'.format(400, 300))
- usersetwindow.resizable(0,0)
- usersetwindow.grab_set()#made it unclickable
- '''
- https://www.lynda.com/portal/sip?org=wcl.govt.nz&triedlogout=true
- 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
- '''
- #interface code it's pretty aesthetic i know
- root = Tk()
- root.title('Steam Backup Launcher')
- root.resizable(0,0)
- root.geometry('{}x{}'.format(430, 375))
- root.configure(background="black")
- mainFrame = Frame(root)
- BotFrame = Frame(root)
- gameNames = []
- gameList = []
- userList = []
- GTA4 = Game("grand theft auto 4", "3/5", 45, "rockstar", 1) #name, stock, price, publisher
- destiny = Game("destiny", "4/5", 45, "bungie", 1) #name, stock, price, publisher
- overwatch = Game("overwatch", "4/5", 60, "blizzard", 1) #name, stock, price, publisher
- jamie = User("joji", "2low4ahoe", 244, [GTA4.name, destiny.name, overwatch.name])#game library working!
- #globals
- username1 = ""
- password1 = ""
- username = "test"
- password = "test" #testing names
- print(GTA4.name + GTA4.rating)
- print(jamie.username + " " + str(jamie.library))
- #title
- labelCom = Label(mainFrame, text="steam", font=("arial", 34), background="#999", width=10).grid(row=0, column=1, sticky=N, padx=6, pady=6)
- #buy pop up box i want to make a list of avaliable game where they can be displayed
- buyButton = Button(mainFrame, text="Buy", command=Buying.buyfunc)
- buyButton.grid(row=1, column=0, ipadx=10, ipady=5, padx=10)
- #login button
- loginButton = Button(mainFrame, text="Login", command=loginfunc)
- loginButton.grid(row=1, column=2, ipadx=10, ipady=5, padx=10)
- #logout pop up box i want to make a list of avaliable game where they can be displayed
- logoutButton = Button(BotFrame, text="Logout", command=logoutfunc)
- logoutButton.grid(row=3, column=2, ipadx=10, ipady=5, padx=10)
- #sales pop up box i want to make a list of games of sale
- salesButton = Button(BotFrame, text="Sales!", command=salesfunc)
- salesButton.grid(row=3, column=0, ipadx=10, ipady=5, padx=10)
- #settings pop up box i want to make a list of games of sale
- usersetButton = Button(BotFrame, text="user setting", command=usersetfunc)
- usersetButton.grid(row=2, column=1, ipadx=10, ipady=5, padx=10)
- #library
- sell_comic_menu= StringVar()
- sell_comic_menu.set("this is your library")
- sell_comic_menuoption = OptionMenu(mainFrame, sell_comic_menu, *jamie.library).grid(row=2, column=1, sticky=N, padx=6)
- # 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)
- ''' #concept idea first might remove later
- #notification box
- LabelNotification = Label(mainFrame, text="notifications", font=("arial", 16), background="#999", width=10).grid(row=1, column=2, sticky=N, padx=3, pady=3)
- #notification content update with notify_1-4
- spaceNotString = StringVar()
- spaceNotString.set("")
- LabelNotContent = Label(mainFrame, textvariable=spaceNotString, width=20, font=("arial",10))
- LabelNotContent.grid(row=2, column=2, sticky=N)
- #display board content
- displayBoardString = StringVar()
- displayBoardString.set("")
- LabeldisplayBoardContent = Label(mainFrame, textvariable=displayBoardString, width=25, height=5, font=("arial",12))
- LabeldisplayBoardContent.grid(row=2, column=1, sticky=N, rowspan=2,padx=6)
- '''
- #balance display
- 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)
- #main frame
- mainFrame.pack(side=TOP, fill=BOTH, expand=TRUE)
- BotFrame.pack(side=BOTTOM, fill=BOTH, expand=TRUE)
- #root.bind("<space>", clear)
- #displaymoney()
- root.mainloop()
- #all prints are for testing purposes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement