This class is a wrapper for Tkinter.Canvas that provides a few additional features: More...
Methods defined here: | |
def | AddBinding |
def | AddItem |
def | ClearHighlight |
def | EraseAll |
def | Hide |
def | HideGrid |
def | Highlight |
def | Raise |
def | Render |
def | SetBounds |
def | SetScaleAdjustment |
def | Show |
def | ShowGrid |
def | __init__ |
Data and other attributes defined here: | |
string | grid_tag = 'GRID' |
This class is a wrapper for Tkinter.Canvas that provides a few additional features:
1) Automatic scaling and centering of the diagram. This allows the caller to draw a diagram in whatever units are most natural (e.g. inches) without having to worry about converting to pixels or drawing within the bounds of the canvas. When rendered the DiagramBuilder will scale the drawing to fit with in the specified boundary and center it.
2) A simple interface for highlighting items within the diagram. On forms this can be used on Focus In of a widget to highlight what the widget's value affects.
3) An extensible framework that allows for adding additional item types.
Diagrams are created by supplying DiagramItems to the DiagramBuilder. Currently there are DiagramItems for the most commonly used canvas items (arc, line, oval, polygon, rectangle, text) as well as a few more complex items (dimension, labeled arrow).
See the following for usage: plugins/HollowCoreSlab/HollowCoreSlabEdit.py plugins/ConcreteTee/ConcreteTeeEdit.py
def diagram.DiagramBuilder.DiagramBuilder.__init__ | ( | args | ) |
Creates a DiagramBuilder instance. Parameters: canvas: The TkInter canvas object that this DiagrameBuilder is to manage.
def diagram.DiagramBuilder.DiagramBuilder.AddBinding | ( | args | ) |
Adds a binding to items in the diagram with the specified tag. This should only be called before Render(). Parameters: tag: The tag for items to bind. event: The event sequence (e.g. <Button-1>, <Enter>). command: A function that executes the action to take when the event fires. Example: builder = DiagramBuilder( canvas ) tag = 'MyCircle' builder.AddItem( OvalItem.Circle( (0., 0.), 5.), [tag] ) def onCircleClick(event): print 'Clicked circle with tag ' + tag builder.AddBinding( tag, '<Button-1>', onCircleClick )
def diagram.DiagramBuilder.DiagramBuilder.AddItem | ( | args | ) |
Adds an item to be drawn on the diagram. This should only be called before Render() Parameters: diagramItem: An object that inherits from DiagramItem. tags: A list of tags to associate the diagram item with. The tag list may be empty if the highlight functionality is not needed for the diagram item.
def diagram.DiagramBuilder.DiagramBuilder.ClearHighlight | ( | args | ) |
Clears all highlights from the diagram.
def diagram.DiagramBuilder.DiagramBuilder.EraseAll | ( | args | ) |
Erases everything that this object has added to the canvas.
def diagram.DiagramBuilder.DiagramBuilder.Hide | ( | args | ) |
Hide(args)
def diagram.DiagramBuilder.DiagramBuilder.HideGrid | ( | args | ) |
HideGrid(args)
def diagram.DiagramBuilder.DiagramBuilder.Highlight | ( | args | ) |
Highlights all diagram items that are associated with the specified tag.
def diagram.DiagramBuilder.DiagramBuilder.Raise | ( | args | ) |
Raises the drawing items that are associated with the specified tag to the top of the canvas.
def diagram.DiagramBuilder.DiagramBuilder.Render | ( | args | ) |
Renders the diagram automatically scaling and centering it within the diagram bounds.
def diagram.DiagramBuilder.DiagramBuilder.SetBounds | ( | args | ) |
Sets the boundary in which the diagram should be drawn. Defaults to the bounds of the canvas at the time this object is created. This should only be called before Render(). Parameters: left: The x-coordinate of the left edge of the boundary. right: The x-coordinate of the right edge of the boundary. top: The y-coordinate of the top edge of the boundary. bottom: The y-coordinate of the bottom edge of the boundary.
def diagram.DiagramBuilder.DiagramBuilder.SetScaleAdjustment | ( | args | ) |
Sets the scale adjustment. This should only be called before Render(). Parameters: pcnt: The scale adjustment percentage. Less than 1. will make the diagram smaller. Greater than 1. will make it larger. 0. or negative values are not allowed.
def diagram.DiagramBuilder.DiagramBuilder.Show | ( | args | ) |
Show(args)
def diagram.DiagramBuilder.DiagramBuilder.ShowGrid | ( | args | ) |
ShowGrid(args)
|
static |