Merge pull request #1401 from musteresel/fix-graph-images-memleak

Fix memory leak due to Images of Graph
This commit is contained in:
PySimpleGUI 2019-05-15 10:16:46 -04:00 committed by GitHub
commit 2780e20262
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View file

@ -2033,7 +2033,7 @@ class Graph(Element):
self.DragSubmits = drag_submits
self.ClickPosition = (None, None)
self.MouseButtonDown = False
self.Images = []
self.Images = {}
self.RightClickMenu = right_click_menu
super().__init__(ELEM_TYPE_GRAPH, background_color=background_color, size=canvas_size, pad=pad, key=key,
@ -2188,9 +2188,9 @@ class Graph(Element):
print('*** WARNING - The Graph element has not been finalized and cannot be drawn upon ***')
print('Call Window.Finalize() prior to this operation')
return None
self.Images.append(image)
try: # in case closed with X
id = self._TKCanvas2.create_image(converted_point, image=image, anchor=tk.NW)
self.Images[id] = image
except:
id = None
return id
@ -2202,6 +2202,7 @@ class Graph(Element):
print('*** WARNING - The Graph element has not been finalized and cannot be drawn upon ***')
print('Call Window.Finalize() prior to this operation')
return None
self.Images = {}
try: # in case window was closed with X
self._TKCanvas2.delete('all')
except:
@ -2210,6 +2211,7 @@ class Graph(Element):
def DeleteFigure(self, id):
try:
del self.Images[id]
self._TKCanvas2.delete(id)
except:
print('DeleteFigure - bad ID {}'.format(id))

View file

@ -2043,7 +2043,7 @@ class Graph(Element):
self.DragSubmits = drag_submits
self.ClickPosition = (None, None)
self.MouseButtonDown = False
self.Images = []
self.Images = {}
self.RightClickMenu = right_click_menu
super().__init__(ELEM_TYPE_GRAPH, background_color=background_color, size=canvas_size, pad=pad, key=key,
@ -2198,9 +2198,9 @@ class Graph(Element):
print('*** WARNING - The Graph element has not been finalized and cannot be drawn upon ***')
print('Call Window.Finalize() prior to this operation')
return None
self.Images.append(image)
try: # in case closed with X
id = self._TKCanvas2.create_image(converted_point, image=image, anchor=tk.NW)
self.Images[id] = image
except:
id = None
return id
@ -2212,6 +2212,7 @@ class Graph(Element):
print('*** WARNING - The Graph element has not been finalized and cannot be drawn upon ***')
print('Call Window.Finalize() prior to this operation')
return None
self.Images = {}
try: # in case window was closed with X
self._TKCanvas2.delete('all')
except:
@ -2220,6 +2221,7 @@ class Graph(Element):
def DeleteFigure(self, id):
try:
del self.Images[id]
self._TKCanvas2.delete(id)
except:
print('DeleteFigure - bad ID {}'.format(id))