From 607bccac648b559dd2aab9f57d9d7a4a1bbdcf8b Mon Sep 17 00:00:00 2001 From: MikeTheWatchGuy Date: Tue, 15 Jan 2019 13:59:44 -0500 Subject: [PATCH] Animated GIFs! Fix for missing table headers. --- PySimpleGUI.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/PySimpleGUI.py b/PySimpleGUI.py index b9d6ec96..e20c2379 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -1843,6 +1843,9 @@ class Image(Element): print('* Warning... no image specified in Image Element! *') self.EnableEvents = enable_events self.RightClickMenu = right_click_menu + self.AnimatedFrames = None + self.CurrentFrameNumber = 0 + self.TotalAnimatedFrames = 0 super().__init__(ELEM_TYPE_IMAGE, size=size, background_color=background_color, pad=pad, key=key, tooltip=tooltip, visible=visible) @@ -1867,6 +1870,30 @@ class Image(Element): elif visible is True: self.tktext_label.pack() + def UpdateAnimation(self, source, size=(None, None)): + if self.AnimatedFrames is None: + self.AnimatedFrames = [] + for i in range(1000): + if type(source) is not bytes: + try: + self.AnimatedFrames.append(tk.PhotoImage(file=source, format='gif -index %i' % (i))) + except: + break + else: + try: + self.AnimatedFrames.append(tk.PhotoImage(data=source, format='gif -index %i' % (i))) + except: + break + if size != (None, None): + self.AnimatedFrames[i].configure + self.TotalAnimatedFrames += 1 + # show the frame + self.CurrentFrameNumber = self.CurrentFrameNumber + 1 if self.CurrentFrameNumber+1< self.TotalAnimatedFrames else 0 + self.tktext_label.configure(image=self.AnimatedFrames[self.CurrentFrameNumber]) + + + + def __del__(self): super().__del__() @@ -5620,7 +5647,7 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form:Window): headings = element.ColumnHeadings if element.ColumnHeadings is not None else element.Values[0] for i, heading in enumerate(headings): - # treeview.heading(heading, text=heading) + treeview.heading(heading, text=heading) if element.AutoSizeColumns: width = max(column_widths[i], len(heading)) else: