class KvMemeApp(App): def build(self): self.meme = Meme('gifs/this_is_fine.gif') return MemeAppMainView(self) def set_top(self, value): self.meme.set_top(value) def set_mid(self, value): self.meme.set_mid(value) def set_bot(self, value): self.meme.set_bot(value)
class MemeApp(object): def __init__(self): self.root = Tk() self.root.title('Memez!!!!1!') self.mainframe = ttk.Frame(self.root, padding='3 3 12 12') self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) self.mainframe.columnconfigure(0, weight=1) self.mainframe.rowconfigure(0, weight=1) self.top = StringVar() self.top.trace('w', self.update_top) self.top_entry = ttk.Entry(self.mainframe, textvariable=self.top) self.top_entry.grid(column=0, row=0) self.mid = StringVar() self.mid.trace('w', self.update_mid) self.mid_entry = ttk.Entry(self.mainframe, textvariable=self.mid) self.mid_entry.grid(column=0, row=1) self.bot = StringVar() self.bot.trace('w', self.update_bot) self.bot_entry = ttk.Entry(self.mainframe, textvariable=self.bot) self.bot_entry.grid(column=0, row=2) self.filename = 'gifs/this_is_fine.gif' self.meme = Meme(self.filename) self.img = self.meme.render('test.gif') self.tkimg = ImageTk.PhotoImage(self.img) self.button = ttk.Button(self.mainframe, image=self.tkimg) self.button.grid(column=1, row=0, rowspan=3, stick=(W, E)) self.select_meme = ttk.Button(self.mainframe, text='Select Image', command=self.select_image) self.select_meme.grid(column=0, row=3) #self.button.pack() self.mainframe.pack() def run(self): self.root.mainloop() def update_top(self, var, align, *args): str = self.top.get() self.top.set(str) self.meme.set_top(str) self.meme.set_top_align(align) self.update_img() return True def update_mid(self, var, align, *args): str = self.mid.get() self.mid.set(str) self.meme.set_mid(str) self.meme.set_mid_align(align) self.update_img() return True def update_bot(self, var, align, *args): str = self.bot.get() self.bot.set(str) self.meme.set_bot(str) self.meme.set_bot_align(align) self.update_img() return True def select_image(self, *args): self.filename = tkFileDialog.askopenfilename(initialdir="/", title="Select file") self.meme.set_input(self.filename) def update_img(self): self.img = self.meme.render('temp.gif') self.tkimg = ImageTk.PhotoImage(self.img) self.button['image'] = self.tkimg