A canvas is a widget to draw on, i.e. we can put graphical objects on it (lines, polygons, circles and ellipses, wee images, and even whole widgets) at a specified position. A canvas is scrollable, so its drawing area can be far larger than the displayed area.
The graphical objects on a canvas are called canvas items. Just like for widgets, the different kinds of canvas items are represented by different types. Canvas items can be configured (but of course the configurations are mostly different from widget configurations), and we can bind events to them.