Merge pull request #2528 from PySimpleGUI/Dev-latest

Graph.draw_polygon added
This commit is contained in:
PySimpleGUI 2020-01-20 10:05:07 -05:00 committed by GitHub
commit 6fedd0e7d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 1 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
version = __version__ = "4.15.1.5 Unreleased - Fix for draw_pixel, fix Multline.update with no value specified, listbox update no longer selects a default, all justifications can be shortened to single letter, fix for debug window closed with Quit button, removed f-string" version = __version__ = "4.15.1.5 Unreleased - Fix for draw_pixel, fix Multline.update with no value specified, listbox update no longer selects a default, all justifications can be shortened to single letter, fix for debug window closed with Quit button, removed f-string, draw_polygon added"
port = 'PySimpleGUI' port = 'PySimpleGUI'
@ -3260,6 +3260,7 @@ class Graph(Element):
:param bottom_right: Union[Tuple[int, int], Tuple[float, float]] the bottom right point of rectangle :param bottom_right: Union[Tuple[int, int], Tuple[float, float]] the bottom right point of rectangle
:param fill_color: (str) color of the interior :param fill_color: (str) color of the interior
:param line_color: (str) color of outline :param line_color: (str) color of outline
:param line_width: (int) width of the line in pixels
:return: Union[int, None] id returned from tkinter that you'll need if you want to manipulate the rectangle :return: Union[int, None] id returned from tkinter that you'll need if you want to manipulate the rectangle
""" """
@ -3279,6 +3280,31 @@ class Graph(Element):
id = None id = None
return id return id
def DrawPolygon(self, points, fill_color=None, line_color=None, line_width=None):
"""
Draw a rectangle given 2 points. Can control the line and fill colors
:param points: List[Union[Tuple[int, int], Tuple[float, float]]] list of points that define the polygon
:param fill_color: (str) color of the interior
:param line_color: (str) color of outline
:param line_width: (int) width of the line in pixels
:return: Union[int, None] id returned from tkinter that you'll need if you want to manipulate the rectangle
"""
converted_points = [self._convert_xy_to_canvas_xy(point[0], point[1]) for point in points]
if self._TKCanvas2 is None:
print('*** WARNING - The Graph element has not been finalized and cannot be drawn upon ***')
print('Call Window.Finalize() prior to this operation')
return None
try: # in case closed with X
id = self._TKCanvas2.create_polygon(converted_points, fill=fill_color, outline=line_color, width=line_width)
except:
id = None
return id
def DrawText(self, text, location, color='black', font=None, angle=0, text_location=TEXT_LOCATION_CENTER): def DrawText(self, text, location, color='black', font=None, angle=0, text_location=TEXT_LOCATION_CENTER):
""" """
Draw some text on your graph. This is how you label graph number lines for example Draw some text on your graph. This is how you label graph number lines for example
@ -3567,6 +3593,7 @@ class Graph(Element):
draw_line = DrawLine draw_line = DrawLine
draw_oval = DrawOval draw_oval = DrawOval
draw_point = DrawPoint draw_point = DrawPoint
draw_polygon = DrawPolygon
draw_rectangle = DrawRectangle draw_rectangle = DrawRectangle
draw_text = DrawText draw_text = DrawText
get_figures_at_location = GetFiguresAtLocation get_figures_at_location = GetFiguresAtLocation