Adding toolbar buttons
Next, we need to add 16 buttons to the left toolbar. Further, depending on which button is clicked, different options would show up in the top bar as shown here:
We do not want our code structure to be bloated by conditional logic to switch among these 16 functions. Therefore, we will call these methods dynamically.
We first begin by defining a tuple of all 16 function names (see code 6.01.py
):
tool_bar_functions = ( "draw_line", "draw_oval", "draw_rectangle", "draw_arc", "draw_triangle", "draw_star", "draw_irregular_line", "draw_super_shape", "draw_text", "delete_item", "fill_item", "duplicate_item", "move_to_top", "drag_item", "enlarge_item_size", "reduce_item_size" )
Doing so ensures that we do not have to call each method explicitly from our code. We can instead use the index of the tuple to retrieve the method name and call it dynamically using:
getattr(self, self.toolbar_functions[index])
This makes sense here, because we would eventually add...