Advertisement
PrOdIgY_Carcass

literal depression

Aug 19th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.22 KB | None | 0 0
  1. from Tkinter import *
  2. import re
  3. import json
  4.  
  5. root = Tk()
  6.  
  7. class GUI:
  8.     def __init__(self, master):
  9.         self.master = master
  10.         master.title("Stage 0")
  11.        
  12.         self.lightlist = [IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar(),IntVar()]
  13.         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]
  14.         self.frames = []
  15.         self.framerate = 30
  16.  
  17.         self.advancebtntext = StringVar()
  18.         self.advancebtntext.set("Next Stage")
  19.  
  20.         self.framerateboxval = StringVar()
  21.  
  22.         self.framerateset = 0
  23.  
  24.         self.stage = 0
  25.  
  26.         self.c0           = Checkbutton(master, text="", variable=self.lightlist[0]).grid(row=0, column=0)
  27.         self.c1           = Checkbutton(master, text="", variable=self.lightlist[1]).grid(row=0, column=1)
  28.         self.c2           = Checkbutton(master, text="", variable=self.lightlist[2]).grid(row=0, column=2)
  29.         self.c3           = Checkbutton(master, text="", variable=self.lightlist[3]).grid(row=1, column=0)
  30.         self.c4           = Checkbutton(master, text="", variable=self.lightlist[4]).grid(row=1, column=1)
  31.         self.c5           = Checkbutton(master, text="", variable=self.lightlist[5]).grid(row=1, column=2)
  32.         self.c6           = Checkbutton(master, text="", variable=self.lightlist[6]).grid(row=2, column=0)
  33.         self.c7           = Checkbutton(master, text="", variable=self.lightlist[7]).grid(row=2, column=1)
  34.         self.c8           = Checkbutton(master, text="", variable=self.lightlist[8]).grid(row=2, column=2)
  35.         self.advancebtn   = Button(master, textvariable=self.advancebtntext, command=self.advance)
  36.         self.advancebtn.grid(row=4, column=1)
  37.         self.frameratebox = Entry(master, textvariable=self.framerateboxval, validate='key', vcmd=(root.register(self.validateText), '%P'))
  38.  
  39.     def validateText(self, text):
  40.         if re.findall('[^\d.]', text):
  41.             self.advancebtn.config(state=DISABLED)
  42.             return False
  43.         elif text == '':
  44.             self.advancebtn.config(state=DISABLED)
  45.             return True
  46.         self.advancebtn.config(state=NORMAL)
  47.         return True
  48.  
  49.     def advance(self):
  50.         for i in range(0, len(self.lightlist)):
  51.             if self.stage   == 0:
  52.                 self.listfull[i]      = self.lightlist[i].get()
  53.             elif self.stage == 1:
  54.                 self.listfull[i + 9]  = self.lightlist[i].get()
  55.             elif self.stage == 2:
  56.                 self.listfull[i + 18] = self.lightlist[i].get()
  57.  
  58.             self.lightlist[i].set(0)
  59.  
  60.         if self.stage   == 0:
  61.             self.master.title("Stage 1")
  62.         elif self.stage == 1:
  63.             if not self.framerateset:
  64.                 self.frameratebox.grid(row=5, column=1)
  65.                 self.frameratebox.focus_set()
  66.                 self.advancebtn.config(state=DISABLED)
  67.             self.master.title("Stage 2")
  68.             self.advancebtntext.set("Next Frame")
  69.         elif self.stage == 2:
  70.             self.frameratebox.grid_forget()
  71.             self.framerateset = 1
  72.             self.master.title("Stage 0")
  73.             self.frames += [self.listfull]
  74.             self.stage = 0
  75.             self.advancebtntext.set("Next Stage")
  76.             return self.newFrame(self)
  77.  
  78.         self.stage += 1
  79.  
  80.     def newFrame(self, arg1):
  81.         try:
  82.             with open('animation.json', 'r') as file:
  83.                 data = json.read(file)
  84.                 data.frames += self.frames
  85.             with open('animation.json', 'w') as file:
  86.                 json.dump(data, file)
  87.         except:
  88.             with open('animation.json', 'w') as file:
  89.                 json.dump({"frames":self.frames,"framerate":self.framerate}, file)
  90.  
  91. my_gui = GUI(root)
  92. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement