Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Tkinter import *
- import re
- import json
- root = Tk()
- class GUI:
- def __init__(self, master):
- self.master = master
- master.title("Stage 0")
- self.lightlist = [IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar()]
- self.listfull = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- self.frames = []
- self.framerate = 30
- self.advancebtntext = StringVar()
- self.advancebtntext.set("Next Stage")
- self.framerateboxval = StringVar()
- self.framerateset = 0
- self.stage = 0
- self.c0 = Checkbutton(master, text="", variable=self.lightlist[0]).grid(row=0, column=0)
- self.c1 = Checkbutton(master, text="", variable=self.lightlist[1]).grid(row=0, column=1)
- self.c2 = Checkbutton(master, text="", variable=self.lightlist[2]).grid(row=0, column=2)
- self.c3 = Checkbutton(master, text="", variable=self.lightlist[3]).grid(row=1, column=0)
- self.c4 = Checkbutton(master, text="", variable=self.lightlist[4]).grid(row=1, column=1)
- self.c5 = Checkbutton(master, text="", variable=self.lightlist[5]).grid(row=1, column=2)
- self.c6 = Checkbutton(master, text="", variable=self.lightlist[6]).grid(row=2, column=0)
- self.c7 = Checkbutton(master, text="", variable=self.lightlist[7]).grid(row=2, column=1)
- self.c8 = Checkbutton(master, text="", variable=self.lightlist[8]).grid(row=2, column=2)
- self.advancebtn = Button(master, textvariable=self.advancebtntext, command=self.advance)
- self.advancebtn.grid(row=4, column=1)
- self.frameratebox = Entry(master, textvariable=self.framerateboxval, validate='key', vcmd=(root.register(self.validateText), '%P'))
- def validateText(self, text):
- if re.findall('[^\d.]', text):
- self.advancebtn.config(state=DISABLED)
- return False
- elif text == '':
- self.advancebtn.config(state=DISABLED)
- return True
- self.advancebtn.config(state=NORMAL)
- return True
- def advance(self):
- for i in range(0, len(self.lightlist)):
- if self.stage == 0:
- self.listfull[i] = self.lightlist[i].get()
- elif self.stage == 1:
- self.listfull[i + 9] = self.lightlist[i].get()
- elif self.stage == 2:
- self.listfull[i + 18] = self.lightlist[i].get()
- self.lightlist[i].set(0)
- if self.stage == 0:
- self.master.title("Stage 1")
- elif self.stage == 1:
- if not self.framerateset:
- self.frameratebox.grid(row=5, column=1)
- self.frameratebox.focus_set()
- self.advancebtn.config(state=DISABLED)
- self.master.title("Stage 2")
- self.advancebtntext.set("Next Frame")
- elif self.stage == 2:
- self.frameratebox.grid_forget()
- self.framerateset = 1
- self.master.title("Stage 0")
- self.frames += [self.listfull]
- self.stage = 0
- self.advancebtntext.set("Next Stage")
- return self.newFrame(self)
- self.stage += 1
- def newFrame(self, arg1):
- try:
- with open('animation.json', 'r') as file:
- data = json.read(file)
- data.frames += self.frames
- with open('animation.json', 'w') as file:
- json.dump(data, file)
- except:
- with open('animation.json', 'w') as file:
- json.dump({"frames":self.frames,"framerate":self.framerate}, file)
- my_gui = GUI(root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement