2012-03-16 14:42:35 +00:00
|
|
|
Drawing
|
2012-03-23 16:05:08 +00:00
|
|
|
-------
|
2012-04-04 10:04:52 +00:00
|
|
|
|
2013-04-30 21:16:06 +00:00
|
|
|
Each widget has a canvas, i.e. a place to draw on. The canvas is a group of
|
|
|
|
instructions that should be executed whenever there is a change to the widget's
|
|
|
|
graphical representation.
|
|
|
|
You can add two types of instructions to the canvas: *context* instructions and
|
|
|
|
*vertex* instructions. You can add instructions either from Python or from the
|
|
|
|
kv file (the preferred way).
|
|
|
|
If you add them via the kv file, the advantage is that they are automatically
|
|
|
|
updated when any property they depend on changes. In Python, you need to do
|
|
|
|
this yourself.
|
2012-04-04 10:04:52 +00:00
|
|
|
|
2012-04-18 19:12:50 +00:00
|
|
|
.. image:: ../images/gs-drawing.png
|
2012-04-04 10:04:52 +00:00
|
|
|
|
2013-04-30 21:16:06 +00:00
|
|
|
In both cases, the canvas of `MyWidget` is re-drawn whenever the ``position``
|
|
|
|
or the ``size`` of the widget changes.
|
2012-04-04 10:04:52 +00:00
|
|
|
|
2013-04-30 21:16:06 +00:00
|
|
|
You can use **canvas.before** or **canvas.after**. This allows you to separate
|
|
|
|
your instructions based on when you want them to happen.
|
2012-04-04 10:04:52 +00:00
|
|
|
|
2013-04-30 21:16:06 +00:00
|
|
|
For an in-depth look at how Kivy's graphics are handled, look
|
|
|
|
:mod:`here <kivy.graphics>`.
|